SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Java Batch for Cost Optimized Efficiency




Sridhar Sudarsan
Watson Solutions
Chief Architect, Batch processing Strategy, IBM
sudarsa@us.ibm.com




                                                  October 03, 2012
What we’ll cover today
• Why Batch ?
• Batch platform in a solution
• Java & Batch
• Java Batch JSR 352
• Java Batch offerings
• Best practices and some Customer scenarios
Achieve business efficiency through a balanced blend of Batch and
 Online processing

   A continuous interleaving of bulk and real-time processing maximizes the balance between
   operational efficiency and market responsiveness on a 24x7 global basis. It enables an cost effective,
   always-on business environment

  8 am                                  8 pm                       8 am
                                                                          Optimize cycle time for business
                                                                          processes: Get improved information
               Online                                                     availability and quality with continuous
                                                   Batch
                                                                          batch processing
                                                                          Reduce costs: Consolidate and
                                                                          standardize IT systems, services and
  8 am                                                             8 am   people skills between batch and OLTP
                                                                          Adopt elastic batch processing:
                                                                          Expand or contract batch windows
                                           Batch           Batch          dynamically based on business
              Batch
                                Batch                                     decisions and IT resource usage
                        Batch




Develop re-usable and composable bulk services through business process analysis, design analysis,
programming models, tools and runtimes for bulk-processing services.
Build and manage workloads smarter to address evolving business needs and gain a competitive edge
Common batch patterns
 •   Integrate batch applications in a Service Oriented architecture
      –   Reuse business logic between Batch and OLTP applications
      –   Leverage rules, processes and events in batch or bulk
      –   Compose business services using batch and real-time activities

 •   Run managed java batch applications on the mainframe
      –   Modernize legacy batch applications
      –   Better integration of infrastructure and operations

 •   Use Java batch applications to handle shrinking batch windows
      –   More data to process in shorter windows
      –   Business process changes to handle 24x7 batch processing

 •   Leverage batch towards achieving agility
      –   Faster turnaround to implement new(er) or modified business processes
      –   Be better equipped to manage regulatory compliance quickly



Identify the right strategy for you to help reduce the cost of running batch efficiently
Batch processing reference model
                                           Invocation services
                       Ad hoc                                                               Planned


                    Batch Partner                 Business process                         Scheduler
                      services                    and event services                        services

                                   Invocation & Scheduling optimization
                                 Resource brokering, Split & Parallelize, Pace, Throttle


    Batch                                  Bulk application container                                    System
  application                                                                                          management
 development                                                                                               and
 Environment for                    Data access management services                                     operations
  creating and                                                                                         Manage, monitor
  migrating bulk                                                                                       and secure bulk
   applications    “File” Data         Queue based              In-memory              Custom data
                                                                                                         processes
                     access            data access              data access              access



                                              Information storage



                                             Infrastructure services
                       All layers above this interacts with or uses the services from the core OS


                                             Analytics & Autonomics
                                  for scheduling, check-pointing, resource management
Batch Applications Need Batch Middleware
              Batch Application     - Business and custom data access logic
                                    - Library of common data access and
Application



              Batch Framework         utilities
 Support




                Job Control         - Declarative job definition (xml based)
                 Language

              Batch Container       - Runtime engine for batch applications

               Job Scheduler        - Job dispatcher, operational control point
Middleware




              Logging/archival      - Manager for job history and output
  Batch




              PJM     WLM      HA   - Parallelization, WLM, and availability
              Resource Mgmt         - Rule-based CPU and file limits
                    Security        - Security for jobs and job operations
JSR 352 for Batch
•    The Expert Group membership includes: IBM, Redhat, Oracle, VMWare, Credit Suisse,
     Clarkson University, and an independent Swiss consultant.
•    Following the new JCP 2.8 process, the proceedings of the expert group are
     transparent, and the community is able to participate through a public mailing list.
•    Standards based Programming Model (PM) & batch container
•    Target – Java EE and Java SE
•    PM closer to the Record Processor model (or Spring’s Item Reader/Processor/Writer
     model)
•    IBM providing Reference Implementation and Technology Compatibility Kit

•    Spec complete by 4Q 2012

•    View JSR details here: http://jcp.org/en/jsr/detail?id=352

•    Subscribe to JSR 352 public mailing list here: http://java.net/projects/jbatch
JSR 352 - Concepts
Job: Encapsulates an entire batch process


Step: Encapsulates an independent, sequential phase of a batch job


ItemReader: Represents retrieval of input for a step, one item at a time


ItemProcessor: Represents business processing of an item


ItemWriter: Represents the output of step, one batch or chunks of items at a time



JobOperator: Interface to manage all aspects of job processing                                 1
                                                                                                    ItemReader

                                                                                       1
                                                                      1    *               1   1
                          JobOperator                    Job                    Step               ItemProcessor
                                                                                       1

                                                                                                    ItemWriter
                                                                                               1
                                                 JobRepository
JSR 352 – Concepts …

JobInstance: Logical job run                     Job               Step


JobExecution: Single attempt to run a job
                                              JobInstance
StepExecution: Single attempt to run a step


                                              JobExecution        StepExecution



Chunk: Is a type of Step which implements
the reader-processor-writer pattern.
Configurable Tx management and
checkpoint                                        Chunk      or           Batchlet

Batchlet: Second type of Step which
specifies a task-oriented batch step
JSR 352 – Chunk-oriented Processing

 Chunk-oriented processing – primary processing
 style
   Read one item at a time
   Process individual item
   Collect the processed items in the writer and write out in
   chunks
JSR 352 - Job Specification Language

Specifies a job, steps and directs their execution
Implemented in XML
Supports inheritance of job, step, flow and split
JSR 352 – Job Parallelization

Job steps can be run in parallel
Parallelization Models
  Partitioned
     Step/flow run as multiple instances across multiple
      threads
     Each thread runs the same step/flow
  Concurrent
     Flows/steps defined by a split run concurrently across
       multiple threads
     One flow/step of the split per thread
The Batch Programming Model
 Functions and class libraries supplied with the Feature Pack and Compute Grid
                                   Batch Container
     Batch Controller Bean                                                           Job Control
                                                                                  xJCL -- very much like
        Part of the Batch Container
                                                                               traditional JCL, except it is
           code supplied by IBM
                                                                               coded in XML. Equivalents
                                                                                    to JOB cards, DD
                                                                                 statements, STEPs, etc.
         Job Step Control                              Batch App
         Invoking and coordinating                     POJO
         processing between steps
                                                     Step 1


       Batch Data Streams                            Step 2
                                                                                              Development
       Provides data input and output
          services for the job steps                                                            Libraries
                                                                                                 RAD or Eclipse
                                                     Step n
     Checkpoint Algorithms
   Service to programmatically determine
         and handle checkpointing


   Results and Return Codes                     WAS Runtime Interfaces
  Services to determine, manipulate and act
                                                 JDBC, JCA, Security, Transaction,
       upon return codes, both at the
                                                  Logging, Deployment, etc., etc.
        application and system level
WebSphere Batch – An overview
It is a batch execution framework within the WebSphere Application Server
runtime platform:

     WebSphere Application Server AppServer
                                                                      WebSphere Batch adds
                                                                      function to an existing
      Web                   EJB                     Batch             WebSphere Application
    Container             Container                Container          Server runtime
        Web                     EJB                         Batch     environment on all
        Modules                 Modules                     Modules
                                                                      platforms

  WebSphere Application Server Foundation Services
          Security, Transaction, Data Access, Logging ...




    Runtime Platform and Operating System
Lets look at the basic WebSphere Batch runtime

                                  WAS Server             WAS Server 1
                                   WAS Server             WAS Server 1
Dispatcher interfaces
                                                              Batch
                                                               Batch
                                                            Container
  Command window
                                          Job                Container
                        xJCL               Job
                                       dispatcher
 EJB/Web Services                       dispatcher                                      App
       call
                                                                                      Data store
                                                             Batch App
                                                              Batch App
       JMC                                                     Job # 1
                                          Job                   Job # 1
                                        Repository
      wsgrid




       Job Scheduler/Dispatcher (JS)                 Grid Endpoints (GEE)
       • The job entry point to WebSphere Batch      • Executes the actual business logic of the batch
       • Job life-cycle management (Submit, Stop,      job
         Cancel, etc) and monitoring                 • Hosts the programming model
       • Dispatches workload to either the PJM or    xJCL
         GEE
                                                     • XML descriptor for the job
       • Hosts the Job Management Console (JMC)
                                                     • Allows variable substitution
WebSphere Batch runtime components with PJM
                                               WAS Server 1
   Job        WAS Server
 Repository
                                                 Batch
                                                Container
                   Job
  xJCL          Scheduler
                                                               SubJob
                                                 Batch App     Collector
                                                                 SPI
                                     logical
                                transaction       SubJob # 1
                                      scope
              WAS Server
Sub Job                                              …
 Name
                 Batch                         WAS Server N
                Container     Parameterizer
                                  SPI            Batch
                                                Container
                               Logical TX
                             Synchronization
                 Parallel          SPI
               Job Manager      SubJob           Batch App     SubJob
                                Analyzer                       Collector
                                  SPI                            SPI
                                                 SubJob # N
Checkpoint & Restart with Batch Data Streams


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



Job Start                                         Job Restart
              1                                                 1
                  open()                                            open()


                                                                2   internalizeCheckpoint()
              2
                  positionAtInitialCheckpoint()

 Batch                                             Batch        3
Container                                                           positionAtCurrentCheckpoint()
              3
                  externalizeCheckpoint()         Container
                                                                4
                                                                    externalizeCheckpoint()

              4                                                 5
                  close()
                                                                    close()
WebSphere Batch: OSGi Batch Applications
                         •Enables use of OSGi for batch
                         applications development
bundle    …     bundle
                         •Full batch programming model
                         available to OSGi framework
                         •Supports standard and blueprint
         .eba            bundles
                         •Enterprise Bundle Archive
                         deployment
         WAS


    WAS Batch
      Job
JD: Multi-threading
 xJCL:
<job name=… >
     <run instances=”multiple”            •Option to run parallel job on
          jvm=“single” />                 multiple threads.
     <step name=… >
     …                                    •Parallel Job Manager local
     </step>
</job>                                    optimization.
                                          •Alternative to running parallel
Runtime:      Top job                     job across multiple JVMs.
                                          •Optimizes shorter running
                                          subjobs.
 Thread         Thread           Thread



Subjob         Subjob            Subjob
JD: Heterogeneous Steps
xJCL:                                                 •Ability to mix various step
<job name=… >                                         types in the same job1
     <step name=“TxBatch” >
     …
     </step>                                                    Transactional Batch
     <step name=“MultiProcess”>
          <run instances=”multiple”
           jvm=“multiple” />
     …                                                               Parallel
     </step>
     <step name=“CI” >
     …
     </step>                                                    Compute Intensive
     <step name=“ShellCmd”>
     …
     </step>
</job>                                                            Native Execution
                           1 Overcomes   v6.1.1 limitations
OP: Memory Overload Protection
                     incoming jobs

                            …        job
                                           •Protection against
              job    job
                                           over-scheduling jobs to an application
                                           server
Room for next job?

                     running jobs
                                           •Batch Container monitors job memory
                                           demand against available JVM heap
              job    job    job      job   space

                                           •Prevents Java OutOfMemoryError
 free space

                                           •Automatic real time job memory
                JVM Heap                   estimation with declarative xJCL
                                           override

xJCL: <job name=… [memory=N] … >
Batch Tooling (Rational Application Developer)
                                                         Integrated (F1) Help




     Full Online Documentation
     http://publib.boulder.ibm.com/infocenter/radhelp/v8/topic/com.ibm.servertools.do
     c/topics/batch/c_config_develop.html

22
Best practices: Batch application design
• Reuse existing application services, where applicable
• Adopt a phased, incremental development approach
    – Build the infrastructure to deploy simple batch applications first

• Build reusable components to form part of your custom application
  framework based on the WebSphere Java Batch programming model
    – Externalize your components to increase opportunity to reuse
• Identify applications that exploit capabilities of WebSphere Batch and
  validate the infrastructure - specifically for migrations
    •   Use tooling available in Rational Application Developer/Rational Software
        Architect/Rational Developer for z to take achieve higher developer productivity
Best practices: Tuning Java batch applications
• Tune each unit of work first
   – Unit of work is invoked in a loop; any inefficiencies get multiplied by the amount of data
     being processed
   – Tune the application using standard tuning best practices
• Parallelize workload
   – Use parallelism to gain maximize advantage
   – Don’t over-parallelize
• Apply outside-in optimization techniques
   – Apply WAS JVM tuning parameters
   – Watch out for bottlenecks in downstream components
   – Scale horizontally and/or vertically
• Achieve elastic 24x7 batch processing
   – Manage checkpoint frequencies to drive 24x7 processing
   – Pace and throttle jobs as needed
• Set up job classes to distinguish between job characteristics
A sampling of Customer scenarios
Customer           Scenario                                 Platform      Business Results
Largest Re-        Batch modernization - COBOL to Java      zOS           Operational simplicity with out-of-box connector to Enterprise Scheduler (TWS). Process
insurance          conversion                                             20Million records a week, with database of 35 TB with 100 billion rows and 40’000 batch
company                                                                   jobs.
Investment &       Mainframe batch modernization/optimize   zOS           Optimize batch processes, run 24x7 to help with the strategy to reduce batch
Trading co         MIPS usage                                             development, operating and runtime costs.

Wall Street Bank   Extreme batch payments transaction       Distributed   High Performance, Highly-Parallel Batch Jobs with WebSphere Compute Grid and
                   processing                                             eXtreme Scale on Distributed Platforms at about 400K transactions/hour, need to get 1
                                                                          mn transaction/hr
Bank/Credit card   Ab Initio and WCG comparison             Linux         Realized difference between ETL and business batch; and did some initial tests to
company                                                                   validate performance with and without data lookups.

Insurance          Replace home grown batch framework       Linux         Deployed a horizontally scalable java batch environment
Company            with WCG
                                                                          Developer and operational productivity with reuse of code between web and batch
                                                                          applications, reuse of administrative scripts from WAS environment

                                                                          Stability through isolating resource intensive applications to their own clusters

                                                                           Operational simplicity through reuse of applications by pushing the input and output
                                                                          descriptors into the xJCL

Bank               Business Intelligence Reporting with     zOS           Comparing the WCG+Dataquant solution with Accentuate
                   Dataquant / WCG

German                                                      AIX/zOS       Dynamically adjust IT resources to meet changing business needs
insurance
company                                                                   •Reduce load on backend the data store to manageable levels

                                                                          •Improve transaction throughput and response times

                                                                          •Improve developer productivity

                                                                          •Scale easily as business transaction volumes grow
An architecture overview for file processing

                                                Online
                                               request


                                  WebSphere Compute Grid
                     File on
                   Shared Store
                                                                      Validate, check entitlements
                                      Init (Stream Input from File)        Persistence layer
                  ETL –
               Augment,
File arrives    Validate,
               transform,                     Unit of work
                  chunk

                                                                             WebSphere
                                          Summarize Results                   eXtreme
                                                                                                     Database
                                                                               Scale
Additional slides for reference
JSR 352 – Programing Model - Chunk
Chunk

Package: javax.batch.annotation

@ItemReader @Named[("<id>")]

        @Open void <method-name>(Externalizable checkpoint) throws Exception

        @Close void <method-name>() throws Exception

        @ReadItem <item-type> <method-name> () throws Exception

        @CheckpointInfo Externalizable <method-name> () throws Exception

@ItemProcessor @Named[("<id>")]

        @ProcessItem <output-item-type> <method-name>(<item-type> item) throws Exception

@ItemWriter @Named[("<id>")]

        @Open void <method-name>(Externalizable checkpoint) throws Exception

        @Close void <method-name>() throws Exception

        @WriteItems void <method-name> (List<item-type> items) throws Exception

        @CheckpointInfo Externalizable <method-name> () throws Exception

@CheckpointAlgorithm @Named[("<id>")]

        @CheckpointTimeout int <method-name> (int timeout) throws Exception

        @BeginCheckpoint void <method-name> () throws Exception

        @IsReadyToCheckpoint boolean <method-name> () throws Exception

        @EndCheckpoint void <method-name> () throws Exception
JSR 352 – Programming Model - Batchlet

Package: javax.batch.annotation


Batchlet


@Batchlet @Named[("<id>")]
   @Process String <method-name> () throws Exception
   @Stop void <method-name> () throws Exception
JSR 352 – Programming Model - Listeners
Listeners

@ JobListener @Named[("<id>")]
       Package: javax.batch.annotation.joblistener

        @BeforeJob void <method-name> () throws Exception
        @AfterJob void <method-name> () throws Exception

@ StepListener @Named[("<id>")]
       Package: javax.batch.annotation.steplistener

        @BeforeStep void <method-name> () throws Exception
            @AfterStep void <method-name> () throws Exception

@ CheckpointListener @Named[("<id>")]
       Package: javax.batch.annotation.checkpointlistener

        @BeforeCheckpoint void <method-name> () throws Exception
        @AfterCheckpoint void <method-name> () throws Exception

Other listeners
        ItemReaderListener
        ItemProcessorListener
        ItemWriterListener
        SkipListener
        RetryListener
JSR 352 – Programming Model - Parallelization
@PartitionMapper @Named[("<id>")]

      @CalculatePartitions PartitionPlan <method-name>( ) throws Exception


@PartitionReducer @Named[("<id>")]

      package: javax.batch.annotation.partitionreducer
      @Begin void <method-name>() throws Exception
      @BeforeCompletion void <method-name>() throws Exception
      @Rollback void <method-name>() throws Exception
      @AfterCompletion void <method-name>(String status) throws Exception


@PartitionCollector @Named[("<id>")]

      package: javax.batch.annotation.partitioncollector
      @CollectPartitionData Externalizable <method-name>() throws Exception


@PartitionAnalyzer @Named[("<id>")]

      package: javax.batch.annotation.partitionanalyzer
      @AnalyzeCollectorData void <method-name>(Externalizable data) throws Exception
      @AnalyzeExitStatus void <method-name>(String exitStatus) throws Exception
Hindi
                                                                                             Thai


                                                 Traditional Chinese




                            Russian
                                                                                                   Gracias
                                               Thank You
                                                                                                             Spanish




Dziękuję
      Polish
                                                             English
                                                                          Obrigado
                                                                            Brazilian Portuguese

                                      Arabic


                                                                                                             Danke
                                                                                                                  German

                       Grazie
                          Italian
                                                     Simplified Chinese            Merci
                                                                                           French




                                                        Japanese
    Tamil

                                                                                                    Korean

Weitere ähnliche Inhalte

Was ist angesagt?

Greenplum Database Overview
Greenplum Database Overview Greenplum Database Overview
Greenplum Database Overview EMC
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLEDB
 
JavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjectsJavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjectsRyan Sciampacone
 
Accelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent MemoryAccelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent MemoryDatabricks
 
Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013EDB
 
Hadoop & Greenplum: Why Do Such a Thing?
Hadoop & Greenplum: Why Do Such a Thing?Hadoop & Greenplum: Why Do Such a Thing?
Hadoop & Greenplum: Why Do Such a Thing?Ed Kohlwey
 
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseChristina Lin
 
DevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud DatabaseDevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud DatabaseEDB
 
NoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured PostgresNoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured PostgresEDB
 
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js ProcessesHow InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js ProcessesInfluxData
 
5 Tips to Simplify the Management of Your Postgres Database
5 Tips to Simplify the Management of Your Postgres Database5 Tips to Simplify the Management of Your Postgres Database
5 Tips to Simplify the Management of Your Postgres DatabaseEDB
 
An Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQLAn Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQLEDB
 
Introduction to Greenplum
Introduction to GreenplumIntroduction to Greenplum
Introduction to GreenplumDave Cramer
 
Object oriented design patterns for distributed systems
Object oriented design patterns for distributed systemsObject oriented design patterns for distributed systems
Object oriented design patterns for distributed systemsJordan McBain
 
Best Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupBest Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupEDB
 
Top 10 Tips for an Effective Postgres Deployment
Top 10 Tips for an Effective Postgres DeploymentTop 10 Tips for an Effective Postgres Deployment
Top 10 Tips for an Effective Postgres DeploymentEDB
 
Supercharge Your Integration Services
Supercharge Your Integration Services�Supercharge Your Integration Services�
Supercharge Your Integration ServicesChristina Lin
 
Expert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to PostgresExpert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to PostgresEDB
 
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012Shirshanka Das
 

Was ist angesagt? (20)

Greenplum Database Overview
Greenplum Database Overview Greenplum Database Overview
Greenplum Database Overview
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
JavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjectsJavaOne 2013: Introduction to PackedObjects
JavaOne 2013: Introduction to PackedObjects
 
Accelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent MemoryAccelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent Memory
 
Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013
 
Hadoop & Greenplum: Why Do Such a Thing?
Hadoop & Greenplum: Why Do Such a Thing?Hadoop & Greenplum: Why Do Such a Thing?
Hadoop & Greenplum: Why Do Such a Thing?
 
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss Fuse
 
DevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud DatabaseDevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud Database
 
NoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured PostgresNoSQL on ACID: Meet Unstructured Postgres
NoSQL on ACID: Meet Unstructured Postgres
 
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js ProcessesHow InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
 
5 Tips to Simplify the Management of Your Postgres Database
5 Tips to Simplify the Management of Your Postgres Database5 Tips to Simplify the Management of Your Postgres Database
5 Tips to Simplify the Management of Your Postgres Database
 
An Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQLAn Expert Guide to Migrating Legacy Databases to PostgreSQL
An Expert Guide to Migrating Legacy Databases to PostgreSQL
 
Introduction to Greenplum
Introduction to GreenplumIntroduction to Greenplum
Introduction to Greenplum
 
Object oriented design patterns for distributed systems
Object oriented design patterns for distributed systemsObject oriented design patterns for distributed systems
Object oriented design patterns for distributed systems
 
Best Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupBest Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture Setup
 
Top 10 Tips for an Effective Postgres Deployment
Top 10 Tips for an Effective Postgres DeploymentTop 10 Tips for an Effective Postgres Deployment
Top 10 Tips for an Effective Postgres Deployment
 
CloverETL Basic Training Excerpt
CloverETL Basic Training ExcerptCloverETL Basic Training Excerpt
CloverETL Basic Training Excerpt
 
Supercharge Your Integration Services
Supercharge Your Integration Services�Supercharge Your Integration Services�
Supercharge Your Integration Services
 
Expert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to PostgresExpert Guide to Migrating Legacy Databases to Postgres
Expert Guide to Migrating Legacy Databases to Postgres
 
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
 

Andere mochten auch

Languages formanandmachine
Languages formanandmachineLanguages formanandmachine
Languages formanandmachineGireesh Punathil
 
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...Robert Nicholson
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayJohn Duimovich
 
2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source Day2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source DayShawn Wells
 
Wicket Introduction
Wicket IntroductionWicket Introduction
Wicket IntroductionEyal Golan
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kissmfrancis
 
Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference Arnaud Bouchez
 
Why a DevOps approach is critical to achieve digital transformation
Why a DevOps approach is critical to achieve digital transformationWhy a DevOps approach is critical to achieve digital transformation
Why a DevOps approach is critical to achieve digital transformationAgileSparks
 
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...mfrancis
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....vasuballa
 
PHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonPHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonHaim Michael
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming PlatformsAnup Hariharan Nair
 
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]vasuballa
 
Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#Sagar Pednekar
 
JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017Luigi Fugaro
 
The Digital Maturity Matrix -A Methodology for Digital Transformation
The Digital Maturity Matrix -A Methodology for Digital TransformationThe Digital Maturity Matrix -A Methodology for Digital Transformation
The Digital Maturity Matrix -A Methodology for Digital TransformationJoakim Jansson
 

Andere mochten auch (20)

Final Presentation
Final PresentationFinal Presentation
Final Presentation
 
3.1 oracle salonika
3.1 oracle salonika3.1 oracle salonika
3.1 oracle salonika
 
Languages formanandmachine
Languages formanandmachineLanguages formanandmachine
Languages formanandmachine
 
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
IBM IMPACT 2009 Conference Session 2024 - WebSphere sMash Integration, PHP wi...
 
Accelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is TodayAccelerating Innovation with Java: The Future is Today
Accelerating Innovation with Java: The Future is Today
 
2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source Day2011-03-15 Lockheed Martin Open Source Day
2011-03-15 Lockheed Martin Open Source Day
 
Wicket Introduction
Wicket IntroductionWicket Introduction
Wicket Introduction
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
 
Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference
 
Why a DevOps approach is critical to achieve digital transformation
Why a DevOps approach is critical to achieve digital transformationWhy a DevOps approach is critical to achieve digital transformation
Why a DevOps approach is critical to achieve digital transformation
 
Java Enterprise Edition
Java Enterprise EditionJava Enterprise Edition
Java Enterprise Edition
 
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
 
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
OOW16 - Migrating and Managing Customizations for Oracle E-Business Suite 12....
 
PHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonPHP, Java EE & .NET Comparison
PHP, Java EE & .NET Comparison
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
 
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
OOW16 - Advanced Architectures for Oracle E-Business Suite [CON6705]
 
Unlocking the power of digital healthcare
Unlocking the power of digital healthcareUnlocking the power of digital healthcare
Unlocking the power of digital healthcare
 
Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#
 
JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017JDV for Codemotion Rome 2017
JDV for Codemotion Rome 2017
 
The Digital Maturity Matrix -A Methodology for Digital Transformation
The Digital Maturity Matrix -A Methodology for Digital TransformationThe Digital Maturity Matrix -A Methodology for Digital Transformation
The Digital Maturity Matrix -A Methodology for Digital Transformation
 

Ähnlich wie Java Batch for Cost Optimized Efficiency

21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented ArchitectureBob Rhubart
 
Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...Perficient, Inc.
 
Collaborate 2012 - the never ending road of project management presentation c...
Collaborate 2012 - the never ending road of project management presentation c...Collaborate 2012 - the never ending road of project management presentation c...
Collaborate 2012 - the never ending road of project management presentation c...Chain Sys Corporation
 
Using a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise developmentUsing a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise developmentWSO2
 
Practical Approach to Data Maintenance in for PLM in Oracle EBS
Practical Approach to Data Maintenance in for PLM in Oracle EBSPractical Approach to Data Maintenance in for PLM in Oracle EBS
Practical Approach to Data Maintenance in for PLM in Oracle EBSSamsung Electronics
 
Дамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseДамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseТранслируем.бел
 
An Integrated Framework for Parameter-based Optimization of Scientific Workflows
An Integrated Framework for Parameter-based Optimization of Scientific WorkflowsAn Integrated Framework for Parameter-based Optimization of Scientific Workflows
An Integrated Framework for Parameter-based Optimization of Scientific Workflowsvijayskumar
 
Real User Experience Insight
Real User Experience InsightReal User Experience Insight
Real User Experience Insightruiruitang
 
Real User Experience Insight
Real User Experience InsightReal User Experience Insight
Real User Experience Insightruiruitang
 
Real User Experience Insight
Real User Experience InsightReal User Experience Insight
Real User Experience Insightruiruitang
 
Jimwebber soa
Jimwebber soaJimwebber soa
Jimwebber soad0nn9n
 
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex Liviu Claudiu Cismaru
 
Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010
Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010
Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010RES Software Nederland
 
BI Forum 2009 - Principy architektury MPP datového skladu
BI Forum 2009 - Principy architektury MPP datového skladuBI Forum 2009 - Principy architektury MPP datového skladu
BI Forum 2009 - Principy architektury MPP datového skladuOKsystem
 
Application architecture for cloud
Application architecture for cloudApplication architecture for cloud
Application architecture for cloudMarco Parenzan
 
The Enterprise Cloud: Immediate. Urgent. Inevitable.
The Enterprise Cloud: Immediate. Urgent. Inevitable.The Enterprise Cloud: Immediate. Urgent. Inevitable.
The Enterprise Cloud: Immediate. Urgent. Inevitable.Peter Coffee
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
IBM Smarter Business 2012 - PureSystems - PureData
IBM Smarter Business 2012 - PureSystems - PureDataIBM Smarter Business 2012 - PureSystems - PureData
IBM Smarter Business 2012 - PureSystems - PureDataIBM Sverige
 
Advanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big DataAdvanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big DataPerficient, Inc.
 

Ähnlich wie Java Batch for Cost Optimized Efficiency (20)

21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented Architecture
 
Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...
 
Collaborate 2012 - the never ending road of project management presentation c...
Collaborate 2012 - the never ending road of project management presentation c...Collaborate 2012 - the never ending road of project management presentation c...
Collaborate 2012 - the never ending road of project management presentation c...
 
Enterprise Enabler- Presentation
Enterprise Enabler- PresentationEnterprise Enabler- Presentation
Enterprise Enabler- Presentation
 
Using a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise developmentUsing a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise development
 
Practical Approach to Data Maintenance in for PLM in Oracle EBS
Practical Approach to Data Maintenance in for PLM in Oracle EBSPractical Approach to Data Maintenance in for PLM in Oracle EBS
Practical Approach to Data Maintenance in for PLM in Oracle EBS
 
Дамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseДамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes Storehouse
 
An Integrated Framework for Parameter-based Optimization of Scientific Workflows
An Integrated Framework for Parameter-based Optimization of Scientific WorkflowsAn Integrated Framework for Parameter-based Optimization of Scientific Workflows
An Integrated Framework for Parameter-based Optimization of Scientific Workflows
 
Real User Experience Insight
Real User Experience InsightReal User Experience Insight
Real User Experience Insight
 
Real User Experience Insight
Real User Experience InsightReal User Experience Insight
Real User Experience Insight
 
Real User Experience Insight
Real User Experience InsightReal User Experience Insight
Real User Experience Insight
 
Jimwebber soa
Jimwebber soaJimwebber soa
Jimwebber soa
 
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
BAM CEP / Business Activity Monitoring , Complex Event Processingomplex
 
Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010
Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010
Eddie van Ravesteijn, Virtualisatie congres, 23 november 2010
 
BI Forum 2009 - Principy architektury MPP datového skladu
BI Forum 2009 - Principy architektury MPP datového skladuBI Forum 2009 - Principy architektury MPP datového skladu
BI Forum 2009 - Principy architektury MPP datového skladu
 
Application architecture for cloud
Application architecture for cloudApplication architecture for cloud
Application architecture for cloud
 
The Enterprise Cloud: Immediate. Urgent. Inevitable.
The Enterprise Cloud: Immediate. Urgent. Inevitable.The Enterprise Cloud: Immediate. Urgent. Inevitable.
The Enterprise Cloud: Immediate. Urgent. Inevitable.
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
IBM Smarter Business 2012 - PureSystems - PureData
IBM Smarter Business 2012 - PureSystems - PureDataIBM Smarter Business 2012 - PureSystems - PureData
IBM Smarter Business 2012 - PureSystems - PureData
 
Advanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big DataAdvanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big Data
 

Java Batch for Cost Optimized Efficiency

  • 1. Java Batch for Cost Optimized Efficiency Sridhar Sudarsan Watson Solutions Chief Architect, Batch processing Strategy, IBM sudarsa@us.ibm.com October 03, 2012
  • 2. What we’ll cover today • Why Batch ? • Batch platform in a solution • Java & Batch • Java Batch JSR 352 • Java Batch offerings • Best practices and some Customer scenarios
  • 3. Achieve business efficiency through a balanced blend of Batch and Online processing A continuous interleaving of bulk and real-time processing maximizes the balance between operational efficiency and market responsiveness on a 24x7 global basis. It enables an cost effective, always-on business environment 8 am 8 pm 8 am Optimize cycle time for business processes: Get improved information Online availability and quality with continuous Batch batch processing Reduce costs: Consolidate and standardize IT systems, services and 8 am 8 am people skills between batch and OLTP Adopt elastic batch processing: Expand or contract batch windows Batch Batch dynamically based on business Batch Batch decisions and IT resource usage Batch Develop re-usable and composable bulk services through business process analysis, design analysis, programming models, tools and runtimes for bulk-processing services. Build and manage workloads smarter to address evolving business needs and gain a competitive edge
  • 4. Common batch patterns • Integrate batch applications in a Service Oriented architecture – Reuse business logic between Batch and OLTP applications – Leverage rules, processes and events in batch or bulk – Compose business services using batch and real-time activities • Run managed java batch applications on the mainframe – Modernize legacy batch applications – Better integration of infrastructure and operations • Use Java batch applications to handle shrinking batch windows – More data to process in shorter windows – Business process changes to handle 24x7 batch processing • Leverage batch towards achieving agility – Faster turnaround to implement new(er) or modified business processes – Be better equipped to manage regulatory compliance quickly Identify the right strategy for you to help reduce the cost of running batch efficiently
  • 5. Batch processing reference model Invocation services Ad hoc Planned Batch Partner Business process Scheduler services and event services services Invocation & Scheduling optimization Resource brokering, Split & Parallelize, Pace, Throttle Batch Bulk application container System application management development and Environment for Data access management services operations creating and Manage, monitor migrating bulk and secure bulk applications “File” Data Queue based In-memory Custom data processes access data access data access access Information storage Infrastructure services All layers above this interacts with or uses the services from the core OS Analytics & Autonomics for scheduling, check-pointing, resource management
  • 6. Batch Applications Need Batch Middleware Batch Application - Business and custom data access logic - Library of common data access and Application Batch Framework utilities Support Job Control - Declarative job definition (xml based) Language Batch Container - Runtime engine for batch applications Job Scheduler - Job dispatcher, operational control point Middleware Logging/archival - Manager for job history and output Batch PJM WLM HA - Parallelization, WLM, and availability Resource Mgmt - Rule-based CPU and file limits Security - Security for jobs and job operations
  • 7. JSR 352 for Batch • The Expert Group membership includes: IBM, Redhat, Oracle, VMWare, Credit Suisse, Clarkson University, and an independent Swiss consultant. • Following the new JCP 2.8 process, the proceedings of the expert group are transparent, and the community is able to participate through a public mailing list. • Standards based Programming Model (PM) & batch container • Target – Java EE and Java SE • PM closer to the Record Processor model (or Spring’s Item Reader/Processor/Writer model) • IBM providing Reference Implementation and Technology Compatibility Kit • Spec complete by 4Q 2012 • View JSR details here: http://jcp.org/en/jsr/detail?id=352 • Subscribe to JSR 352 public mailing list here: http://java.net/projects/jbatch
  • 8. JSR 352 - Concepts Job: Encapsulates an entire batch process Step: Encapsulates an independent, sequential phase of a batch job ItemReader: Represents retrieval of input for a step, one item at a time ItemProcessor: Represents business processing of an item ItemWriter: Represents the output of step, one batch or chunks of items at a time JobOperator: Interface to manage all aspects of job processing 1 ItemReader 1 1 * 1 1 JobOperator Job Step ItemProcessor 1 ItemWriter 1 JobRepository
  • 9. JSR 352 – Concepts … JobInstance: Logical job run Job Step JobExecution: Single attempt to run a job JobInstance StepExecution: Single attempt to run a step JobExecution StepExecution Chunk: Is a type of Step which implements the reader-processor-writer pattern. Configurable Tx management and checkpoint Chunk or Batchlet Batchlet: Second type of Step which specifies a task-oriented batch step
  • 10. JSR 352 – Chunk-oriented Processing Chunk-oriented processing – primary processing style Read one item at a time Process individual item Collect the processed items in the writer and write out in chunks
  • 11. JSR 352 - Job Specification Language Specifies a job, steps and directs their execution Implemented in XML Supports inheritance of job, step, flow and split
  • 12. JSR 352 – Job Parallelization Job steps can be run in parallel Parallelization Models Partitioned Step/flow run as multiple instances across multiple threads Each thread runs the same step/flow Concurrent Flows/steps defined by a split run concurrently across multiple threads One flow/step of the split per thread
  • 13. The Batch Programming Model Functions and class libraries supplied with the Feature Pack and Compute Grid Batch Container Batch Controller Bean Job Control xJCL -- very much like Part of the Batch Container traditional JCL, except it is code supplied by IBM coded in XML. Equivalents to JOB cards, DD statements, STEPs, etc. Job Step Control Batch App Invoking and coordinating POJO processing between steps Step 1 Batch Data Streams Step 2 Development Provides data input and output services for the job steps Libraries RAD or Eclipse Step n Checkpoint Algorithms Service to programmatically determine and handle checkpointing Results and Return Codes WAS Runtime Interfaces Services to determine, manipulate and act JDBC, JCA, Security, Transaction, upon return codes, both at the Logging, Deployment, etc., etc. application and system level
  • 14. WebSphere Batch – An overview It is a batch execution framework within the WebSphere Application Server runtime platform: WebSphere Application Server AppServer WebSphere Batch adds function to an existing Web EJB Batch WebSphere Application Container Container Container Server runtime Web EJB Batch environment on all Modules Modules Modules platforms WebSphere Application Server Foundation Services Security, Transaction, Data Access, Logging ... Runtime Platform and Operating System
  • 15. Lets look at the basic WebSphere Batch runtime WAS Server WAS Server 1 WAS Server WAS Server 1 Dispatcher interfaces Batch Batch Container Command window Job Container xJCL Job dispatcher EJB/Web Services dispatcher App call Data store Batch App Batch App JMC Job # 1 Job Job # 1 Repository wsgrid Job Scheduler/Dispatcher (JS) Grid Endpoints (GEE) • The job entry point to WebSphere Batch • Executes the actual business logic of the batch • Job life-cycle management (Submit, Stop, job Cancel, etc) and monitoring • Hosts the programming model • Dispatches workload to either the PJM or xJCL GEE • XML descriptor for the job • Hosts the Job Management Console (JMC) • Allows variable substitution
  • 16. WebSphere Batch runtime components with PJM WAS Server 1 Job WAS Server Repository Batch Container Job xJCL Scheduler SubJob Batch App Collector SPI logical transaction SubJob # 1 scope WAS Server Sub Job … Name Batch WAS Server N Container Parameterizer SPI Batch Container Logical TX Synchronization Parallel SPI Job Manager SubJob Batch App SubJob Analyzer Collector SPI SPI SubJob # N
  • 17. Checkpoint & Restart with Batch Data Streams WebSphere Batch makes it easy for developers to encapsulate input/output data streams using POJOs that optionally support checkpoint/restart semantics. Job Start Job Restart 1 1 open() open() 2 internalizeCheckpoint() 2 positionAtInitialCheckpoint() Batch Batch 3 Container positionAtCurrentCheckpoint() 3 externalizeCheckpoint() Container 4 externalizeCheckpoint() 4 5 close() close()
  • 18. WebSphere Batch: OSGi Batch Applications •Enables use of OSGi for batch applications development bundle … bundle •Full batch programming model available to OSGi framework •Supports standard and blueprint .eba bundles •Enterprise Bundle Archive deployment WAS WAS Batch Job
  • 19. JD: Multi-threading xJCL: <job name=… > <run instances=”multiple” •Option to run parallel job on jvm=“single” /> multiple threads. <step name=… > … •Parallel Job Manager local </step> </job> optimization. •Alternative to running parallel Runtime: Top job job across multiple JVMs. •Optimizes shorter running subjobs. Thread Thread Thread Subjob Subjob Subjob
  • 20. JD: Heterogeneous Steps xJCL: •Ability to mix various step <job name=… > types in the same job1 <step name=“TxBatch” > … </step> Transactional Batch <step name=“MultiProcess”> <run instances=”multiple” jvm=“multiple” /> … Parallel </step> <step name=“CI” > … </step> Compute Intensive <step name=“ShellCmd”> … </step> </job> Native Execution 1 Overcomes v6.1.1 limitations
  • 21. OP: Memory Overload Protection incoming jobs … job •Protection against job job over-scheduling jobs to an application server Room for next job? running jobs •Batch Container monitors job memory demand against available JVM heap job job job job space •Prevents Java OutOfMemoryError free space •Automatic real time job memory JVM Heap estimation with declarative xJCL override xJCL: <job name=… [memory=N] … >
  • 22. Batch Tooling (Rational Application Developer) Integrated (F1) Help Full Online Documentation http://publib.boulder.ibm.com/infocenter/radhelp/v8/topic/com.ibm.servertools.do c/topics/batch/c_config_develop.html 22
  • 23. Best practices: Batch application design • Reuse existing application services, where applicable • Adopt a phased, incremental development approach – Build the infrastructure to deploy simple batch applications first • Build reusable components to form part of your custom application framework based on the WebSphere Java Batch programming model – Externalize your components to increase opportunity to reuse • Identify applications that exploit capabilities of WebSphere Batch and validate the infrastructure - specifically for migrations • Use tooling available in Rational Application Developer/Rational Software Architect/Rational Developer for z to take achieve higher developer productivity
  • 24. Best practices: Tuning Java batch applications • Tune each unit of work first – Unit of work is invoked in a loop; any inefficiencies get multiplied by the amount of data being processed – Tune the application using standard tuning best practices • Parallelize workload – Use parallelism to gain maximize advantage – Don’t over-parallelize • Apply outside-in optimization techniques – Apply WAS JVM tuning parameters – Watch out for bottlenecks in downstream components – Scale horizontally and/or vertically • Achieve elastic 24x7 batch processing – Manage checkpoint frequencies to drive 24x7 processing – Pace and throttle jobs as needed • Set up job classes to distinguish between job characteristics
  • 25. A sampling of Customer scenarios Customer Scenario Platform Business Results Largest Re- Batch modernization - COBOL to Java zOS Operational simplicity with out-of-box connector to Enterprise Scheduler (TWS). Process insurance conversion 20Million records a week, with database of 35 TB with 100 billion rows and 40’000 batch company jobs. Investment & Mainframe batch modernization/optimize zOS Optimize batch processes, run 24x7 to help with the strategy to reduce batch Trading co MIPS usage development, operating and runtime costs. Wall Street Bank Extreme batch payments transaction Distributed High Performance, Highly-Parallel Batch Jobs with WebSphere Compute Grid and processing eXtreme Scale on Distributed Platforms at about 400K transactions/hour, need to get 1 mn transaction/hr Bank/Credit card Ab Initio and WCG comparison Linux Realized difference between ETL and business batch; and did some initial tests to company validate performance with and without data lookups. Insurance Replace home grown batch framework Linux Deployed a horizontally scalable java batch environment Company with WCG Developer and operational productivity with reuse of code between web and batch applications, reuse of administrative scripts from WAS environment Stability through isolating resource intensive applications to their own clusters Operational simplicity through reuse of applications by pushing the input and output descriptors into the xJCL Bank Business Intelligence Reporting with zOS Comparing the WCG+Dataquant solution with Accentuate Dataquant / WCG German AIX/zOS Dynamically adjust IT resources to meet changing business needs insurance company •Reduce load on backend the data store to manageable levels •Improve transaction throughput and response times •Improve developer productivity •Scale easily as business transaction volumes grow
  • 26. An architecture overview for file processing Online request WebSphere Compute Grid File on Shared Store Validate, check entitlements Init (Stream Input from File) Persistence layer ETL – Augment, File arrives Validate, transform, Unit of work chunk WebSphere Summarize Results eXtreme Database Scale
  • 28. JSR 352 – Programing Model - Chunk Chunk Package: javax.batch.annotation @ItemReader @Named[("<id>")] @Open void <method-name>(Externalizable checkpoint) throws Exception @Close void <method-name>() throws Exception @ReadItem <item-type> <method-name> () throws Exception @CheckpointInfo Externalizable <method-name> () throws Exception @ItemProcessor @Named[("<id>")] @ProcessItem <output-item-type> <method-name>(<item-type> item) throws Exception @ItemWriter @Named[("<id>")] @Open void <method-name>(Externalizable checkpoint) throws Exception @Close void <method-name>() throws Exception @WriteItems void <method-name> (List<item-type> items) throws Exception @CheckpointInfo Externalizable <method-name> () throws Exception @CheckpointAlgorithm @Named[("<id>")] @CheckpointTimeout int <method-name> (int timeout) throws Exception @BeginCheckpoint void <method-name> () throws Exception @IsReadyToCheckpoint boolean <method-name> () throws Exception @EndCheckpoint void <method-name> () throws Exception
  • 29. JSR 352 – Programming Model - Batchlet Package: javax.batch.annotation Batchlet @Batchlet @Named[("<id>")] @Process String <method-name> () throws Exception @Stop void <method-name> () throws Exception
  • 30. JSR 352 – Programming Model - Listeners Listeners @ JobListener @Named[("<id>")] Package: javax.batch.annotation.joblistener @BeforeJob void <method-name> () throws Exception @AfterJob void <method-name> () throws Exception @ StepListener @Named[("<id>")] Package: javax.batch.annotation.steplistener @BeforeStep void <method-name> () throws Exception @AfterStep void <method-name> () throws Exception @ CheckpointListener @Named[("<id>")] Package: javax.batch.annotation.checkpointlistener @BeforeCheckpoint void <method-name> () throws Exception @AfterCheckpoint void <method-name> () throws Exception Other listeners ItemReaderListener ItemProcessorListener ItemWriterListener SkipListener RetryListener
  • 31. JSR 352 – Programming Model - Parallelization @PartitionMapper @Named[("<id>")] @CalculatePartitions PartitionPlan <method-name>( ) throws Exception @PartitionReducer @Named[("<id>")] package: javax.batch.annotation.partitionreducer @Begin void <method-name>() throws Exception @BeforeCompletion void <method-name>() throws Exception @Rollback void <method-name>() throws Exception @AfterCompletion void <method-name>(String status) throws Exception @PartitionCollector @Named[("<id>")] package: javax.batch.annotation.partitioncollector @CollectPartitionData Externalizable <method-name>() throws Exception @PartitionAnalyzer @Named[("<id>")] package: javax.batch.annotation.partitionanalyzer @AnalyzeCollectorData void <method-name>(Externalizable data) throws Exception @AnalyzeExitStatus void <method-name>(String exitStatus) throws Exception
  • 32. Hindi Thai Traditional Chinese Russian Gracias Thank You Spanish Dziękuję Polish English Obrigado Brazilian Portuguese Arabic Danke German Grazie Italian Simplified Chinese Merci French Japanese Tamil Korean