SlideShare a Scribd company logo
1 of 31
Download to read offline
PROCESS EXECUTION
AUTOMATICS, INDIVIDUALS AND
MASSIVES
Abimael Desales López 22/10/2015
Processes
Segment
bootstrap
Individual
Massive
Automatic
Individual
Massive
Automatic
Processsubtypes
Automatic Process
Automatic
Verifypreconditions
Quartz
Controller Executor
Scheduler
Getparameters
VerifyMatrixcoexistenc
ExecuteBusinessRules
Calculationofthreads
ThrownThreads
Makecalculations
Writeoutputfiles
Dumptodatabase
DB
DB
Automatic processing it will carry out through a component whose
mission is verify execution times by the means of scheduler that it will
have maped the time and frecuency of each process in data base, and
further it will have the ability to build the expression that feed to
quartz to make the scheduling of task being performed.
It plans split the automatic processing in two coarse components that
it will execute each one their corresponding function, the (fisrt)
Controller it will verify every input of the process and it will decide if it
going to execute, fulfilling its pre-conditions, defining the commit
frecuency and number of threads in parallel to execute. The (second)
Executor is responsible to execute the process business logic.
Automatic Process
Individual Processing
Process
Bootstrap
Individual
SubtypesofProcess
F6s f5ds9f f9sf55 f6sd5f f6sd5lm ñlk
F5d f5d6xf d5f6d 5fd6s f6ds5f6 wa
Result
DB
Getparameters
VerifiyConvivenceMatrix
ExecuteBusinessRules
MakeCalculations
Typing
Processing
DB
In the individual processing typing the data in screen and accepting it;
to begin the processing the system it will create a ticket, will assign it a
ticket number to the request (if and only if the validation rules have
been successes and the required precondition is ok), it will get the
process parameters, if applies their execution this will be carried out,
in other way the ticket is automaticly canceled. The business rules will
be get and applyed in predefined order for the process. If all
processing was executed successfully and the business rules are ok
then it begin the dump of information to database, inserting and/or
updating registries in the respective tables of the process, and finally
updating the ticket status to PROCESSED.
Individual Processing
Massive Processing
Segment
Bootstrap
Massive
SubtypesofProcesses
CAMEL
TXT
XLS
CSV
F6sdf5ds9fd8f9sf55sdf6sd5f6s5f6sd5
F5dsf5d6xf56d5f6ds5fd6s5f6ds5f65d
Dsfd4sfdsfds56f5ds6f5ds6f5d6f5d6f5
85fdsf52fd6f2sf2d6s2fd6s2f6ds2f6d2
Fds56f5df5s6f2d6s2fd6s2f6ds2f6dsf2
6df5s6df6ds5f5sd6f5s65f6sd5f65ds6f
65ds56sd5f6f5d6g5df5gdf6df6h5gfh5
Df65f5d65gd6fg56df5gdf6gdf5gd6fgf
5dgffd6g5df6g5df5gdf5g651df5g6f5d
F6sdf5ds9fd8f9sf55sdf6sd5f6s5f6sd5
F5dsf5d6xf56d5f6ds5fd6s5f6ds5f65d
Dsfd4sfdsfds56f5ds6f5ds6f5d6f5d6f5
85fdsf52fd6f2sf2d6s2fd6s2f6ds2f6d2
Fds56f5df5s6f2d6s2fd6s2f6ds2f6dsf2
6df5s6df6ds5f5sd6f5s65f6sd5f65ds6f
65ds56sd5f6f5d6g5df5gdf6df6h5gfh5
Df65f5d65gd6fg56df5gdf6gdf5gd6fgf
5dgffd6g5df6g5df5gdf5g65df5g62f5d
F6sdf5ds9fd8f9sf55sdf6sd5f6s5f6sd5
F5dsf5d6xf56d5f6ds5fd6s5f6ds5f65d
Dsfd4sfdsfds56f5ds6f5ds6f5d6f5d6f5
85fdsf52fd6f2sf2d6s2fd6s2f6ds2f6d2
Fds56f5df5s6f2d6s2fd6s2f6ds2f6dsf2
6df5s6df6ds5f5sd6f5s65f6sd5f65ds6f
65ds56sd5f6f5d6g5df5gdf6df6h5gfh5
Df65f5d65gd6fg56df5gdf6gdf5gd6fgf
5dgffd6g5df6g5df5gdf51g65df5g6f5d
OK File
FAILED File
OK File
FAILED File
OK File
FAILED File
CAMEL
Result of Processing
DB
Processing
Export
Export
Export
Controller Executor
Massive Processing
Confirm
F6sdf5ds9fd8f9sf55sdf6sd5f6s5f6sd5
F5dsf5d6xf56d5f6ds5fd6s5f6ds5f65d
Dsfd4sfdsfds56f5ds6f5ds6f5d6f5d6f5
85fdsf52fd6f2sf2d6s2fd6s2f6ds2f6d2
Fds56f5df5s6f2d6s2fd6s2f6ds2f6dsf2
6df5s6df6ds5f5sd6f5s65f6sd5f65ds6f
65ds56sd5f6f5d6g5df5gdf6df6h5gfh5
Df65f5d65gd6fg56df5gdf6gdf5gd6fgf
5dgffd6g5df6g5df5gdf5g651df5g6f5d
OK_File
CAMEL
Processing
Controller Executor
Calculationofthreads
ThrownThreads
Definecommits
GettheFile
Creategenericlayout DB
Thread 2
Thread 3
Thread 4
Thread n-1
Thread 5
Thread n
Thread 1
Commit x Thread and saved of processing data to
keep the trace to reprocess the file in case of
failure
Updating to ARCH_PROCESSED
Here it will execute final
insert
Massive Processing
In the files massive processing highlight three generales steps:
• File load and format recognition.
• File processing, upon their format, and dump in database the
summary of the process.
• Dump in database of each file records (or lines) processed.
To carry out the first two steps it is intended to exploit the features of
the framework Apache Camel, and apply the procedure made in the
proof of concept.
The tasks that will be carry out through Camel in the first stage of the
massive processing are below:
• Routing with dependence of file format
• Get the file registries for the processing
• Validation of structure of the file
• Locate the suitable place to apply the business rules.
• Depending on the result, on the rules/validations enforcement
decide wheter the registry will be write in a OK file or in a FAILED file.
• Routing the outcoming files to a specified route.
Massive Processing
The task to be carry out by Camel in the second phase of the massive
processing (since that is already integrated the OK file) will be the
following:
• Obtaining the OK file
• Receiving as a parameter the number of threads to create.
• Do the parcial Commits towards database by each thread.
• Saved trail processed and not processed blocks
• Positioning in the appropiate place in the file to run only a block of
the same, or no secuential blocks as effect the start of processing of
failed registries.
• Writing to database the summary of failed records of the file.
• Summary of cuantity by columns when is required.
Massive Processing
Structure of the Processes Manager
The Process Manager it will be a component composed
of another 3 main components, the Scheduler, the
Controller and the Executor.
13
Design Guidelines
10/22/2015
Solution Design Processing
Quartz Job
(Modulo)
Web App Controller ExecutorJob Business Logic
Business
Tables
Processes Manager Components Application ComponentsApplication
Java Classes
(thread)
Java Classes
(Process)
B/L
Java
Classes
Call
Call
Repository
Business
Application DB
Shell Script
Specific Tasks
Call
Shell Unix
►Run
Web App
Web App
Restringed
Admin
SuperAdmin
OS
JVM
OS
JVM
Execution
engine
Execution
engine
OS
Controller Executor
Trámite
1
Trámite
2
Trámite
3
Trámite
4
Assign Job ID
and register to
queue
Get and execute
Job
Business DB
Block 1 Block 2 Block 3
Flow from loading the file
Web Sytem
UploadFileBeanuploadFile(…)
Upload File to
Server
Create File
Structure
Create Ticket
Get the tickets
to Process
Camel class
move file to
processing
path and route
it to right
method
ProcessedFile
insert()
Get the
Shedule
Put the OK
and FAILED
files
ProcessedFile
Service
update()
TicketService
update()
Process
registries by
Camel (apply
Business
Rules)
UploadFileBean
Structure of the Processes Manager
Scheduler Responsabilities:
• Schedule the execution times of the process, if are there some
window for modify de execution times, have a funcionality that is
capable to traslate date-time to Quartz expression and back again.
• Create a Job Group by process.
• Start each process to the time of day that is scheduled in
automatic case, or at once in massive e individual cases, this is to
pass the control flow to the Controller.
Approach of the Scheduler
We look that a Job is scheduled, which is only responsible to invoke to one Manager, although
this could change if necessary invoking something more.
Manager is responsible for orchestrating their services and these ones to their corresponding
Daos.
Structure of the Processes Manager
Responsabilities of the Scheduler:
• It will be created so many Job classes as different types of services
you have to run, namely, services will can be grouped in a single
Job so that these conform transactional units or database access,
each Job must implement the org.quartz.Job interface.
• The package structure will be as follows:
– For the orchestator classes
com.axxi.gestor.procesos.planificador
– For the Job classes:
com.axxi.gestor.procesos.planificador.job
– For the job launchers (classes with main method) if required:
com.axxi.gestor.procesos.planificador.launcher
Structure of the Processes Manager
package com.axxi.quartz;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
// Otros imports
public class ControllerJob implements Job {
// Services injected by Spring should be injected by setter injection
private IProcessXManager processXManager;
public void setProcessXManager(IProcessXManager processXManager){
this.processXManager=processXManager;
}
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//Get JobDataMap from the context
JobDataMap dataMap = arg0.getMergedJobDataMap();
processX.orchest(datamap.getWrappedMap());
}
}
Structure of the Processes Manager
Responsabilities of the Scheduler:
• Inside each Job in the execute(…) method it should get the
context’s JobDataMap parameters and set them to the service.
JobDataMap dataMap = arg0.getMergedJobDataMap();
Solicitud solicitud = (Solicitud) dataMap.get("solicitud");
ArchivoProcesado archProcesado = (ArchivoProcesado) dataMap.get("archProcesado");
• In the Job class it will be injected the service by Spring through
setter injection.
• The Manager, Service and Dao clases still work the same way as in
the web project, injecting the instances in the Job, Manager and
Service classes respectively, by Spring.
Manager Example
public class TramiteManager implements ITramiteManager {
// Get the instance by Spring
private ISolicitudService solicitudService;
private IArchivoProcesadoService fileProcessedService;
private IVerificadorPrecondicionesService verifyPreconditions ;
//Setters …
public void orchest(Map<String, Object> parameters) {
Solicitud solicitud = (Solicitud) parameters.get("solicitud");
FileProcessed fileProcessed = (FileProcessed) parameters.get(“fileProcessed");
Integer xParameter = (Integer) parametros.get("xParameter");
solicitudService.createSolicitud(solicitud);
fileProcessedService.createFileProcessed(fileProcessed);
verifyPreconditions.verifyPreconditionsAfiliacion(xParameter);
}
}
Structure of the Processes Manager
Responsabilities of the Scheduler:
• It will be created one Scheduler class for massive processing, one
for individual processing and one for automatic processing, each
one must have as minimum one method by each process type.
– MassiveScheduler.java
– IndividualScheduler.java
– AutomaticScheduler.java
• Each class must implement one specific interface with the
required methods for the functionality.
Structure of the Processes Manager
Responsabilities of the Scheduler:
• It must create one properties file with the mapping of groups with
the processes name.
#Mapping of execution groups with processes
Grupo1=Affiliation
Grupo2=Collection
Grupo3=ABCAdministrative
Grupo4=Unification
Grupo5=Withdraw
Grupo6=ReinvestmentResources
Grupo7=RGPE
Grupo8=Yield
Grupo9=Comission
Grupo10=Loan
Structure of the Processes Manager
Responsabilities of the Scheduler:
• Must have one orchestrator class by each process type (massive,
automatic, individual) by way of pseudo-workflow to execute the
flows.
• Each one of the orchestrator class must be within of the next
package:
com.xxx.manager.processes.scheduler.launcher
• In order to maintain there should be one service to build a
request and one processed file of each process type since each
process has specific values for their request.
Structure of the Processes Manager
Responsabilities of the Controller:
• Verify the preconditions to start the process.
• Determine if the process goes forward in function of the matrix of
coexistence.
• Get the parameters to start the process, this is, the layout, and maybe
some specific execution parameters, as the ID of the process, etc.
• Give way to the Executor so it get the file and begin their processing,
passing it the entire set of parameters obtained.
• When applicable, depending of the process, make the calculations of
threads, and launching threads.
• Control the threads processing and commits, saving the track of the
processed registries, when applicable the processing for threads.
• Having ability to restart.
Structure of the Processes Manager
Responsabilities of the Controller:
For the phase of final processing:
• Getting file to be processed with the corresponding parameters (i.e.
enterprise, product, process y subtype), ticket number.
• Invocation to generic layout maker class.
• Determination of the number of commits.
• Calculation of execution threads –if is staticly assgned, this step is not
necessary.
• Launching and control of threads, unexecuted blocks recovery.
• Allow recovery of certain blocks of the file.
Structure of the Processes Manager
Responsabilities of the Executor:
For the phase of final processing:
• Receive the parameters get in the Controller.
• Start the flow of Camel processing.
• In case of to be interrupted the flow of Camel, send one flag to the
Controller that the process was interrupted in certain point or in
certain block that includes since the X registry to the Y registry
(may be writing to database), so that this can reprocess the file.
• Notify the conclusión of the processing to the Controller
• Get a generic service that records and updates the request and the
table of processed files.
Structure of the Processes Manager
Responsabilities of the Executor:
For the phase of final processing:
• Receiv as parameters the generic layout, the ticket file number,
the frecuency of commits.
• Invoke to the class of each process so that it executes the insert to
the database.
• Return the control of the flow to the Controller so that this
register the block of processed information.
• Invoke to the generic service so that it updates the process state.
Structure of the Processes Manager
Responsabilities of the Executor:
For the phase of final processing:
• It must be created one transactional method for each process to
insert to database the lists of particular layouts corresponding to
each process, each one of this methods must be developed by the
owner responsible of that process logic, can’t be a generic
functionality. The method will receiv one list of Map from the
Camel class to get registries. Within this method it will be invoked
one method that assemble the generic layouts.
• The method must return a Map holding three data:
– 1.- Position of initial registry
– 2.- Position of final registry
– Flag indicating if it can to do the insert (True or False)
Structure of the Processes Manager
Responsabilities of the Executor:
For the phase of final processing:
• It must be created one method for the assembly of the generic
layout that will receiv one Map conteining the field ID - value of
the field, and the last data of the Map will be the number
(position) of the registry in the original file to track what is being
inserted, and we can be aware not inserted records to try the
rework/restart. This method must return one bean with the
received data of the specific layout, but conteining all possible
generic fields.
Structure of the Processes Manager
Responsabilities of the Executor:
For the phase of final processing:
• The required methods will have the next suggested signs:
LayoutGenericoRecaudacion armarLayoutRecaudacion(Map<String, String> layGenerico);
@Transactional
Map <String, Object> insertRecaudacion(List<Map<String, String>> listaLayouts){
LayoutGenericoRecaudacion layGenerico;
for(Map<String, String> map : listaLayouts){
layGenerico = armarLayoutGenerico(map);
//Processing …
}
}
THANKS
Abimael Desales López
Software Architect
Ibermática México
a.desales@ibermatica.com
It.adesales@gmail.com
Feel free to contact me!

More Related Content

What's hot

Why your build matters
Why your build mattersWhy your build matters
Why your build mattersPeter Ledbrook
 
Improving your Gradle builds
Improving your Gradle buildsImproving your Gradle builds
Improving your Gradle buildsPeter Ledbrook
 
Migrating from Backgroundrb to Resque
Migrating from Backgroundrb to ResqueMigrating from Backgroundrb to Resque
Migrating from Backgroundrb to Resquekeenanbrock
 
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...Vincenzo Ferme
 
DevOps Foundations
DevOps FoundationsDevOps Foundations
DevOps FoundationsAmr Fawzy
 
Dynamic Groovy Edges
Dynamic Groovy EdgesDynamic Groovy Edges
Dynamic Groovy EdgesJimmy Ray
 
Workflow Engine Performance Benchmarking with BenchFlow
Workflow Engine Performance Benchmarking with BenchFlowWorkflow Engine Performance Benchmarking with BenchFlow
Workflow Engine Performance Benchmarking with BenchFlowVincenzo Ferme
 
Angular JS in 2017
Angular JS in 2017Angular JS in 2017
Angular JS in 2017Ayush Sharma
 
Hyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkitHyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkit7mind
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagJean-François Gagné
 

What's hot (14)

Pdf mbs workflow
Pdf mbs workflowPdf mbs workflow
Pdf mbs workflow
 
Why your build matters
Why your build mattersWhy your build matters
Why your build matters
 
Improving your Gradle builds
Improving your Gradle buildsImproving your Gradle builds
Improving your Gradle builds
 
Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
C#on linux
C#on linuxC#on linux
C#on linux
 
Migrating from Backgroundrb to Resque
Migrating from Backgroundrb to ResqueMigrating from Backgroundrb to Resque
Migrating from Backgroundrb to Resque
 
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...
BenchFlow: A Platform for End-to-end Automation of Performance Testing and An...
 
DevOps Foundations
DevOps FoundationsDevOps Foundations
DevOps Foundations
 
Dynamic Groovy Edges
Dynamic Groovy EdgesDynamic Groovy Edges
Dynamic Groovy Edges
 
Workflow Engine Performance Benchmarking with BenchFlow
Workflow Engine Performance Benchmarking with BenchFlowWorkflow Engine Performance Benchmarking with BenchFlow
Workflow Engine Performance Benchmarking with BenchFlow
 
Angular JS in 2017
Angular JS in 2017Angular JS in 2017
Angular JS in 2017
 
Hyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkitHyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkit
 
CA 7-final-ppt
CA 7-final-pptCA 7-final-ppt
CA 7-final-ppt
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lag
 

Viewers also liked

Ibuku buta sebelah mata
Ibuku buta sebelah mataIbuku buta sebelah mata
Ibuku buta sebelah mataYusar Cahyadi
 
Slaidi premium medical_ru_novembris
Slaidi premium medical_ru_novembrisSlaidi premium medical_ru_novembris
Slaidi premium medical_ru_novembrisPremiumMedical
 
Annual meeting 2012 (2)
Annual meeting 2012 (2)Annual meeting 2012 (2)
Annual meeting 2012 (2)ourbothy
 
[[ Terevatap ]]
[[ Terevatap ]][[ Terevatap ]]
[[ Terevatap ]]67gayane
 
Basicloadoutmethodologiesintroduction 130326020122-phpapp01
Basicloadoutmethodologiesintroduction 130326020122-phpapp01Basicloadoutmethodologiesintroduction 130326020122-phpapp01
Basicloadoutmethodologiesintroduction 130326020122-phpapp01anishdani
 
Reducing the risks of nonstructural earthquake damage
Reducing the risks of nonstructural earthquake damageReducing the risks of nonstructural earthquake damage
Reducing the risks of nonstructural earthquake damageAna-Maria Popa
 
Premium Medical īpašais piedāvājums 2012.gada martā
Premium Medical īpašais piedāvājums 2012.gada martāPremium Medical īpašais piedāvājums 2012.gada martā
Premium Medical īpašais piedāvājums 2012.gada martāPremiumMedical
 
Runmob arabic games
Runmob arabic gamesRunmob arabic games
Runmob arabic gamesRunMob
 
FYP presentation
FYP presentationFYP presentation
FYP presentationzatiafzan
 
видение, миссия, цели и внутренние ограничения
видение, миссия, цели и внутренние ограничениявидение, миссия, цели и внутренние ограничения
видение, миссия, цели и внутренние ограниченияolgasivkova1
 
Slaidi premium medical_ru_februaris
Slaidi premium medical_ru_februarisSlaidi premium medical_ru_februaris
Slaidi premium medical_ru_februarisPremiumMedical
 
Presentation1
Presentation1Presentation1
Presentation1mohammedj
 
հաշվետվություն
հաշվետվությունհաշվետվություն
հաշվետվությունtatevtatev
 
Code Compliance and Execution
Code Compliance and ExecutionCode Compliance and Execution
Code Compliance and ExecutionAna-Maria Popa
 
Our Beautiful world
Our Beautiful worldOur Beautiful world
Our Beautiful worldZoheb Ali
 
Slaidi premium medical_maijs
Slaidi premium medical_maijsSlaidi premium medical_maijs
Slaidi premium medical_maijsPremiumMedical
 
DCTS selection of reference works in FNC field
DCTS selection of reference works in FNC fieldDCTS selection of reference works in FNC field
DCTS selection of reference works in FNC fieldAna-Maria Popa
 
Annuzzo antonietta 2010-2011_esercizio4
Annuzzo antonietta 2010-2011_esercizio4Annuzzo antonietta 2010-2011_esercizio4
Annuzzo antonietta 2010-2011_esercizio4Anto Annuzzo
 

Viewers also liked (20)

Ibuku buta sebelah mata
Ibuku buta sebelah mataIbuku buta sebelah mata
Ibuku buta sebelah mata
 
Slaidi premium medical_ru_novembris
Slaidi premium medical_ru_novembrisSlaidi premium medical_ru_novembris
Slaidi premium medical_ru_novembris
 
Annual meeting 2012 (2)
Annual meeting 2012 (2)Annual meeting 2012 (2)
Annual meeting 2012 (2)
 
Snund
SnundSnund
Snund
 
[[ Terevatap ]]
[[ Terevatap ]][[ Terevatap ]]
[[ Terevatap ]]
 
Basicloadoutmethodologiesintroduction 130326020122-phpapp01
Basicloadoutmethodologiesintroduction 130326020122-phpapp01Basicloadoutmethodologiesintroduction 130326020122-phpapp01
Basicloadoutmethodologiesintroduction 130326020122-phpapp01
 
Reducing the risks of nonstructural earthquake damage
Reducing the risks of nonstructural earthquake damageReducing the risks of nonstructural earthquake damage
Reducing the risks of nonstructural earthquake damage
 
Premium Medical īpašais piedāvājums 2012.gada martā
Premium Medical īpašais piedāvājums 2012.gada martāPremium Medical īpašais piedāvājums 2012.gada martā
Premium Medical īpašais piedāvājums 2012.gada martā
 
Runmob arabic games
Runmob arabic gamesRunmob arabic games
Runmob arabic games
 
FYP presentation
FYP presentationFYP presentation
FYP presentation
 
видение, миссия, цели и внутренние ограничения
видение, миссия, цели и внутренние ограничениявидение, миссия, цели и внутренние ограничения
видение, миссия, цели и внутренние ограничения
 
Slaidi premium medical_ru_februaris
Slaidi premium medical_ru_februarisSlaidi premium medical_ru_februaris
Slaidi premium medical_ru_februaris
 
вересень
вересеньвересень
вересень
 
Presentation1
Presentation1Presentation1
Presentation1
 
հաշվետվություն
հաշվետվությունհաշվետվություն
հաշվետվություն
 
Code Compliance and Execution
Code Compliance and ExecutionCode Compliance and Execution
Code Compliance and Execution
 
Our Beautiful world
Our Beautiful worldOur Beautiful world
Our Beautiful world
 
Slaidi premium medical_maijs
Slaidi premium medical_maijsSlaidi premium medical_maijs
Slaidi premium medical_maijs
 
DCTS selection of reference works in FNC field
DCTS selection of reference works in FNC fieldDCTS selection of reference works in FNC field
DCTS selection of reference works in FNC field
 
Annuzzo antonietta 2010-2011_esercizio4
Annuzzo antonietta 2010-2011_esercizio4Annuzzo antonietta 2010-2011_esercizio4
Annuzzo antonietta 2010-2011_esercizio4
 

Similar to File Processing - Batch Process Execution

Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek PROIDEA
 
Docker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackDocker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackJakub Hajek
 
Spring batch for large enterprises operations
Spring batch for large enterprises operations Spring batch for large enterprises operations
Spring batch for large enterprises operations Ignasi González
 
20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPMcamunda services GmbH
 
SamzaSQL QCon'16 presentation
SamzaSQL QCon'16 presentationSamzaSQL QCon'16 presentation
SamzaSQL QCon'16 presentationYi Pan
 
Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfAlex446314
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practiceDocker, Inc.
 
Components in real time systems
Components in real time systemsComponents in real time systems
Components in real time systemsSaransh Garg
 
Performance eng prakash.sahu
Performance eng prakash.sahuPerformance eng prakash.sahu
Performance eng prakash.sahuDr. Prakash Sahu
 
Exploiting Web Technologies to connect business process management and engine...
Exploiting Web Technologies to connect business process management and engine...Exploiting Web Technologies to connect business process management and engine...
Exploiting Web Technologies to connect business process management and engine...Stefano Costanzo
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018Antonios Giannopoulos
 
Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away Abhishek Bakshi
 
Ui path certificate question set 1
Ui path certificate question set 1Ui path certificate question set 1
Ui path certificate question set 1Majid Hashmi
 
Quantifying Container Runtime Performance: OSCON 2017 Open Container Day
Quantifying Container Runtime Performance: OSCON 2017 Open Container DayQuantifying Container Runtime Performance: OSCON 2017 Open Container Day
Quantifying Container Runtime Performance: OSCON 2017 Open Container DayPhil Estes
 
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...Ontico
 
Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502kaziul Islam Bulbul
 

Similar to File Processing - Batch Process Execution (20)

Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek
 
Docker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackDocker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic Stack
 
Spring batch for large enterprises operations
Spring batch for large enterprises operations Spring batch for large enterprises operations
Spring batch for large enterprises operations
 
20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM
 
SamzaSQL QCon'16 presentation
SamzaSQL QCon'16 presentationSamzaSQL QCon'16 presentation
SamzaSQL QCon'16 presentation
 
Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdf
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
 
Components in real time systems
Components in real time systemsComponents in real time systems
Components in real time systems
 
DBCC - Dubi Lebel
DBCC - Dubi LebelDBCC - Dubi Lebel
DBCC - Dubi Lebel
 
Performance eng prakash.sahu
Performance eng prakash.sahuPerformance eng prakash.sahu
Performance eng prakash.sahu
 
Exploiting Web Technologies to connect business process management and engine...
Exploiting Web Technologies to connect business process management and engine...Exploiting Web Technologies to connect business process management and engine...
Exploiting Web Technologies to connect business process management and engine...
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018
 
Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away Bag it Tag It Put it : Project Tracking One Click away
Bag it Tag It Put it : Project Tracking One Click away
 
Von neumann workers
Von neumann workersVon neumann workers
Von neumann workers
 
Ui path certificate question set 1
Ui path certificate question set 1Ui path certificate question set 1
Ui path certificate question set 1
 
Quantifying Container Runtime Performance: OSCON 2017 Open Container Day
Quantifying Container Runtime Performance: OSCON 2017 Open Container DayQuantifying Container Runtime Performance: OSCON 2017 Open Container Day
Quantifying Container Runtime Performance: OSCON 2017 Open Container Day
 
Java spring batch
Java spring batchJava spring batch
Java spring batch
 
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...
 
Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502Collaborate 2011-tuning-ebusiness-416502
Collaborate 2011-tuning-ebusiness-416502
 
Autosar Basics hand book_v1
Autosar Basics  hand book_v1Autosar Basics  hand book_v1
Autosar Basics hand book_v1
 

More from Abimael Desales López

Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAbimael Desales López
 
Tareas Programadas de Oracle con Toad 10
Tareas Programadas de Oracle con Toad 10Tareas Programadas de Oracle con Toad 10
Tareas Programadas de Oracle con Toad 10Abimael Desales López
 
File Processing - Process Execution Solution
File Processing - Process Execution SolutionFile Processing - Process Execution Solution
File Processing - Process Execution SolutionAbimael Desales López
 
Patrones de Integración Empresariales
Patrones de Integración EmpresarialesPatrones de Integración Empresariales
Patrones de Integración EmpresarialesAbimael Desales López
 
El mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a serviciosEl mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a serviciosAbimael Desales López
 
SOA: Principios de Diseño de Servicios - Parte II
SOA: Principios de Diseño de Servicios - Parte IISOA: Principios de Diseño de Servicios - Parte II
SOA: Principios de Diseño de Servicios - Parte IIAbimael Desales López
 
Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?Abimael Desales López
 
Conceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOAConceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOAAbimael Desales López
 

More from Abimael Desales López (18)

Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDB
 
Tutorial - Ordenar listas Java
Tutorial   - Ordenar listas JavaTutorial   - Ordenar listas Java
Tutorial - Ordenar listas Java
 
Tareas Programadas de Oracle con Toad 10
Tareas Programadas de Oracle con Toad 10Tareas Programadas de Oracle con Toad 10
Tareas Programadas de Oracle con Toad 10
 
File Processing - Process Execution Solution
File Processing - Process Execution SolutionFile Processing - Process Execution Solution
File Processing - Process Execution Solution
 
Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)
 
Patrones de Integración Empresariales
Patrones de Integración EmpresarialesPatrones de Integración Empresariales
Patrones de Integración Empresariales
 
Jpa modelos de componentes
Jpa   modelos de componentesJpa   modelos de componentes
Jpa modelos de componentes
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Apache Camel - Parte II
Apache Camel - Parte IIApache Camel - Parte II
Apache Camel - Parte II
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Integración de Aplicaciones
Integración de AplicacionesIntegración de Aplicaciones
Integración de Aplicaciones
 
El mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a serviciosEl mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a servicios
 
Orquestación de Servicios y SOA
Orquestación de Servicios y SOAOrquestación de Servicios y SOA
Orquestación de Servicios y SOA
 
SOA: Principios de Diseño de Servicios - Parte II
SOA: Principios de Diseño de Servicios - Parte IISOA: Principios de Diseño de Servicios - Parte II
SOA: Principios de Diseño de Servicios - Parte II
 
Orquestación o coreografía
Orquestación o coreografíaOrquestación o coreografía
Orquestación o coreografía
 
Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?
 
Conceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOAConceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOA
 

Recently uploaded

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Recently uploaded (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

File Processing - Batch Process Execution

  • 1. PROCESS EXECUTION AUTOMATICS, INDIVIDUALS AND MASSIVES Abimael Desales López 22/10/2015
  • 4. Automatic processing it will carry out through a component whose mission is verify execution times by the means of scheduler that it will have maped the time and frecuency of each process in data base, and further it will have the ability to build the expression that feed to quartz to make the scheduling of task being performed. It plans split the automatic processing in two coarse components that it will execute each one their corresponding function, the (fisrt) Controller it will verify every input of the process and it will decide if it going to execute, fulfilling its pre-conditions, defining the commit frecuency and number of threads in parallel to execute. The (second) Executor is responsible to execute the process business logic. Automatic Process
  • 5. Individual Processing Process Bootstrap Individual SubtypesofProcess F6s f5ds9f f9sf55 f6sd5f f6sd5lm ñlk F5d f5d6xf d5f6d 5fd6s f6ds5f6 wa Result DB Getparameters VerifiyConvivenceMatrix ExecuteBusinessRules MakeCalculations Typing Processing DB
  • 6. In the individual processing typing the data in screen and accepting it; to begin the processing the system it will create a ticket, will assign it a ticket number to the request (if and only if the validation rules have been successes and the required precondition is ok), it will get the process parameters, if applies their execution this will be carried out, in other way the ticket is automaticly canceled. The business rules will be get and applyed in predefined order for the process. If all processing was executed successfully and the business rules are ok then it begin the dump of information to database, inserting and/or updating registries in the respective tables of the process, and finally updating the ticket status to PROCESSED. Individual Processing
  • 7. Massive Processing Segment Bootstrap Massive SubtypesofProcesses CAMEL TXT XLS CSV F6sdf5ds9fd8f9sf55sdf6sd5f6s5f6sd5 F5dsf5d6xf56d5f6ds5fd6s5f6ds5f65d Dsfd4sfdsfds56f5ds6f5ds6f5d6f5d6f5 85fdsf52fd6f2sf2d6s2fd6s2f6ds2f6d2 Fds56f5df5s6f2d6s2fd6s2f6ds2f6dsf2 6df5s6df6ds5f5sd6f5s65f6sd5f65ds6f 65ds56sd5f6f5d6g5df5gdf6df6h5gfh5 Df65f5d65gd6fg56df5gdf6gdf5gd6fgf 5dgffd6g5df6g5df5gdf5g651df5g6f5d F6sdf5ds9fd8f9sf55sdf6sd5f6s5f6sd5 F5dsf5d6xf56d5f6ds5fd6s5f6ds5f65d Dsfd4sfdsfds56f5ds6f5ds6f5d6f5d6f5 85fdsf52fd6f2sf2d6s2fd6s2f6ds2f6d2 Fds56f5df5s6f2d6s2fd6s2f6ds2f6dsf2 6df5s6df6ds5f5sd6f5s65f6sd5f65ds6f 65ds56sd5f6f5d6g5df5gdf6df6h5gfh5 Df65f5d65gd6fg56df5gdf6gdf5gd6fgf 5dgffd6g5df6g5df5gdf5g65df5g62f5d F6sdf5ds9fd8f9sf55sdf6sd5f6s5f6sd5 F5dsf5d6xf56d5f6ds5fd6s5f6ds5f65d Dsfd4sfdsfds56f5ds6f5ds6f5d6f5d6f5 85fdsf52fd6f2sf2d6s2fd6s2f6ds2f6d2 Fds56f5df5s6f2d6s2fd6s2f6ds2f6dsf2 6df5s6df6ds5f5sd6f5s65f6sd5f65ds6f 65ds56sd5f6f5d6g5df5gdf6df6h5gfh5 Df65f5d65gd6fg56df5gdf6gdf5gd6fgf 5dgffd6g5df6g5df5gdf51g65df5g6f5d OK File FAILED File OK File FAILED File OK File FAILED File CAMEL Result of Processing DB Processing Export Export Export Controller Executor
  • 9. Massive Processing In the files massive processing highlight three generales steps: • File load and format recognition. • File processing, upon their format, and dump in database the summary of the process. • Dump in database of each file records (or lines) processed. To carry out the first two steps it is intended to exploit the features of the framework Apache Camel, and apply the procedure made in the proof of concept.
  • 10. The tasks that will be carry out through Camel in the first stage of the massive processing are below: • Routing with dependence of file format • Get the file registries for the processing • Validation of structure of the file • Locate the suitable place to apply the business rules. • Depending on the result, on the rules/validations enforcement decide wheter the registry will be write in a OK file or in a FAILED file. • Routing the outcoming files to a specified route. Massive Processing
  • 11. The task to be carry out by Camel in the second phase of the massive processing (since that is already integrated the OK file) will be the following: • Obtaining the OK file • Receiving as a parameter the number of threads to create. • Do the parcial Commits towards database by each thread. • Saved trail processed and not processed blocks • Positioning in the appropiate place in the file to run only a block of the same, or no secuential blocks as effect the start of processing of failed registries. • Writing to database the summary of failed records of the file. • Summary of cuantity by columns when is required. Massive Processing
  • 12. Structure of the Processes Manager The Process Manager it will be a component composed of another 3 main components, the Scheduler, the Controller and the Executor.
  • 13. 13 Design Guidelines 10/22/2015 Solution Design Processing Quartz Job (Modulo) Web App Controller ExecutorJob Business Logic Business Tables Processes Manager Components Application ComponentsApplication Java Classes (thread) Java Classes (Process) B/L Java Classes Call Call Repository Business Application DB Shell Script Specific Tasks Call Shell Unix ►Run Web App Web App Restringed Admin SuperAdmin OS JVM OS JVM Execution engine Execution engine OS Controller Executor Trámite 1 Trámite 2 Trámite 3 Trámite 4 Assign Job ID and register to queue Get and execute Job Business DB Block 1 Block 2 Block 3
  • 14. Flow from loading the file Web Sytem UploadFileBeanuploadFile(…) Upload File to Server Create File Structure Create Ticket Get the tickets to Process Camel class move file to processing path and route it to right method ProcessedFile insert() Get the Shedule Put the OK and FAILED files ProcessedFile Service update() TicketService update() Process registries by Camel (apply Business Rules) UploadFileBean
  • 15. Structure of the Processes Manager Scheduler Responsabilities: • Schedule the execution times of the process, if are there some window for modify de execution times, have a funcionality that is capable to traslate date-time to Quartz expression and back again. • Create a Job Group by process. • Start each process to the time of day that is scheduled in automatic case, or at once in massive e individual cases, this is to pass the control flow to the Controller.
  • 16. Approach of the Scheduler We look that a Job is scheduled, which is only responsible to invoke to one Manager, although this could change if necessary invoking something more. Manager is responsible for orchestrating their services and these ones to their corresponding Daos.
  • 17. Structure of the Processes Manager Responsabilities of the Scheduler: • It will be created so many Job classes as different types of services you have to run, namely, services will can be grouped in a single Job so that these conform transactional units or database access, each Job must implement the org.quartz.Job interface. • The package structure will be as follows: – For the orchestator classes com.axxi.gestor.procesos.planificador – For the Job classes: com.axxi.gestor.procesos.planificador.job – For the job launchers (classes with main method) if required: com.axxi.gestor.procesos.planificador.launcher
  • 18. Structure of the Processes Manager package com.axxi.quartz; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; // Otros imports public class ControllerJob implements Job { // Services injected by Spring should be injected by setter injection private IProcessXManager processXManager; public void setProcessXManager(IProcessXManager processXManager){ this.processXManager=processXManager; } public void execute(JobExecutionContext arg0) throws JobExecutionException { //Get JobDataMap from the context JobDataMap dataMap = arg0.getMergedJobDataMap(); processX.orchest(datamap.getWrappedMap()); } }
  • 19. Structure of the Processes Manager Responsabilities of the Scheduler: • Inside each Job in the execute(…) method it should get the context’s JobDataMap parameters and set them to the service. JobDataMap dataMap = arg0.getMergedJobDataMap(); Solicitud solicitud = (Solicitud) dataMap.get("solicitud"); ArchivoProcesado archProcesado = (ArchivoProcesado) dataMap.get("archProcesado"); • In the Job class it will be injected the service by Spring through setter injection. • The Manager, Service and Dao clases still work the same way as in the web project, injecting the instances in the Job, Manager and Service classes respectively, by Spring.
  • 20. Manager Example public class TramiteManager implements ITramiteManager { // Get the instance by Spring private ISolicitudService solicitudService; private IArchivoProcesadoService fileProcessedService; private IVerificadorPrecondicionesService verifyPreconditions ; //Setters … public void orchest(Map<String, Object> parameters) { Solicitud solicitud = (Solicitud) parameters.get("solicitud"); FileProcessed fileProcessed = (FileProcessed) parameters.get(“fileProcessed"); Integer xParameter = (Integer) parametros.get("xParameter"); solicitudService.createSolicitud(solicitud); fileProcessedService.createFileProcessed(fileProcessed); verifyPreconditions.verifyPreconditionsAfiliacion(xParameter); } }
  • 21. Structure of the Processes Manager Responsabilities of the Scheduler: • It will be created one Scheduler class for massive processing, one for individual processing and one for automatic processing, each one must have as minimum one method by each process type. – MassiveScheduler.java – IndividualScheduler.java – AutomaticScheduler.java • Each class must implement one specific interface with the required methods for the functionality.
  • 22. Structure of the Processes Manager Responsabilities of the Scheduler: • It must create one properties file with the mapping of groups with the processes name. #Mapping of execution groups with processes Grupo1=Affiliation Grupo2=Collection Grupo3=ABCAdministrative Grupo4=Unification Grupo5=Withdraw Grupo6=ReinvestmentResources Grupo7=RGPE Grupo8=Yield Grupo9=Comission Grupo10=Loan
  • 23. Structure of the Processes Manager Responsabilities of the Scheduler: • Must have one orchestrator class by each process type (massive, automatic, individual) by way of pseudo-workflow to execute the flows. • Each one of the orchestrator class must be within of the next package: com.xxx.manager.processes.scheduler.launcher • In order to maintain there should be one service to build a request and one processed file of each process type since each process has specific values for their request.
  • 24. Structure of the Processes Manager Responsabilities of the Controller: • Verify the preconditions to start the process. • Determine if the process goes forward in function of the matrix of coexistence. • Get the parameters to start the process, this is, the layout, and maybe some specific execution parameters, as the ID of the process, etc. • Give way to the Executor so it get the file and begin their processing, passing it the entire set of parameters obtained. • When applicable, depending of the process, make the calculations of threads, and launching threads. • Control the threads processing and commits, saving the track of the processed registries, when applicable the processing for threads. • Having ability to restart.
  • 25. Structure of the Processes Manager Responsabilities of the Controller: For the phase of final processing: • Getting file to be processed with the corresponding parameters (i.e. enterprise, product, process y subtype), ticket number. • Invocation to generic layout maker class. • Determination of the number of commits. • Calculation of execution threads –if is staticly assgned, this step is not necessary. • Launching and control of threads, unexecuted blocks recovery. • Allow recovery of certain blocks of the file.
  • 26. Structure of the Processes Manager Responsabilities of the Executor: For the phase of final processing: • Receive the parameters get in the Controller. • Start the flow of Camel processing. • In case of to be interrupted the flow of Camel, send one flag to the Controller that the process was interrupted in certain point or in certain block that includes since the X registry to the Y registry (may be writing to database), so that this can reprocess the file. • Notify the conclusión of the processing to the Controller • Get a generic service that records and updates the request and the table of processed files.
  • 27. Structure of the Processes Manager Responsabilities of the Executor: For the phase of final processing: • Receiv as parameters the generic layout, the ticket file number, the frecuency of commits. • Invoke to the class of each process so that it executes the insert to the database. • Return the control of the flow to the Controller so that this register the block of processed information. • Invoke to the generic service so that it updates the process state.
  • 28. Structure of the Processes Manager Responsabilities of the Executor: For the phase of final processing: • It must be created one transactional method for each process to insert to database the lists of particular layouts corresponding to each process, each one of this methods must be developed by the owner responsible of that process logic, can’t be a generic functionality. The method will receiv one list of Map from the Camel class to get registries. Within this method it will be invoked one method that assemble the generic layouts. • The method must return a Map holding three data: – 1.- Position of initial registry – 2.- Position of final registry – Flag indicating if it can to do the insert (True or False)
  • 29. Structure of the Processes Manager Responsabilities of the Executor: For the phase of final processing: • It must be created one method for the assembly of the generic layout that will receiv one Map conteining the field ID - value of the field, and the last data of the Map will be the number (position) of the registry in the original file to track what is being inserted, and we can be aware not inserted records to try the rework/restart. This method must return one bean with the received data of the specific layout, but conteining all possible generic fields.
  • 30. Structure of the Processes Manager Responsabilities of the Executor: For the phase of final processing: • The required methods will have the next suggested signs: LayoutGenericoRecaudacion armarLayoutRecaudacion(Map<String, String> layGenerico); @Transactional Map <String, Object> insertRecaudacion(List<Map<String, String>> listaLayouts){ LayoutGenericoRecaudacion layGenerico; for(Map<String, String> map : listaLayouts){ layGenerico = armarLayoutGenerico(map); //Processing … } }
  • 31. THANKS Abimael Desales López Software Architect Ibermática México a.desales@ibermatica.com It.adesales@gmail.com Feel free to contact me!