BPM - performance
- Use high performance disk subsystems
- Use most current BPManager and BPMonitor reelase
- Appropriate JVM Heap Size for optimal throughput and response time
- Tune your DB for optimal performance
- Disable tracing and logging
- Configure thread pools to ensure sufficient concerrency
- Use fast, high bandwidth network connections
- For Business Processes - that use
- BPMN -
- tune the bpd-queue-capacity & max thread pool size - optimal throuput and scalling
- remove unnecessary snapshots from Process Center
- disable notifications is they are not required
- define auth alias, when using CEI to emit events
- tune cache parameters
- tune participant groups
- optimize data search operations
- tune Event Manager - tune BPD pool size, and worker thread pool size.
- tune number of timer events
- tune Process Server DB - increase log file size & enable file system caching
- BPEL -
- maximize the use of micro flow
- use non-incorruptible processes - if macroflow is needed - separate the solution to use microflows and macroflows
- For task and process list queries - use composite query tables
- Use Work Manager based navigation to improve the throughput for long running processes.
- avoid using asynchronous processes unnecessarily.
- avoid overly granular transaction boundaries in SCA
Model & Development:
BPEL / Integration Designer:
- use short running processes - run in one J2EE Transaction with no persistence – Where possible use synchronous interaction for non-interruptible processes
- if macro flow is required create a seperate BPEL
- Avoid using - async calls
- fewer transactional boundaries - best case use
- Join Transaction (Interface of the called component) - true,
- Suspend Transaction (Reference of the calling transaction) - false,
- Transaction - any global
- Services that are automated or start other services - web services, enterprise resource applications
Events:
- start and end - 2 events are sufficient
Architecture:
- Choose query tables for task list and process list queries.
- Choose efficient metadata management -
- performance is better if BO types follow the Java naming standards
- reuse dataobject type metadata where possible - rather than using DataFactory.create(String URI, String typeName) use DataFactory.create(Type type) -
- Business State Machine uses more power … so choose BPEL is possible.
- Use - share by reference libraries where possible
- Ensure content in toolkit is used in several applications.
- BO parsing mode - Applications which Data Streams - like Webservices, SCA components benefit from lazy parsing.
BPMN / BPD:
- Involve Human Interactions
- Business Process - should have a Business Significance … and not just programming - level granularity
Events:
- use of Events (CEI) - should be for Business Monitoring - as event emission uses persistent mechanism
- Business Monitoring should not be confused with IT Monitoring
- Clients are concerned about state of their business - so use events to track when a task completes / or changes state
Architecture:
- Fast connection between Process Designer and Process Center
- Minimize the use of Service Tasks -
- Use searchable business variables - with caution
- minimize the number of variables used
- minimize the size of each variable used
- set variables to null when no longer use - like DB result sets
- turn off auto-tracking - auto tracking in BPD is not required - enabled by default - if required create tracking groups to track key events.
- avoid BPDs that run perpetually / continuously – as it polls continuously for events - alternatives - use JMS service or UCA
- develop efficient coaches
- Avoid large complex coaches
- Avoid large / repeating tables - use pagination
- Always wire coaches to end node
- Minimize use of Large Javascript scripts - it might produce large DOM models - which is expensive - limit it to 50 lines
- Avoid direct sql access to internal BPM tables - such as LSW_TASK or LSW_PROCESS - use BPM javascript / rest apis
Development Best Practice:
- clear variables in exposed human services that are not intended to end
- donot use multi instance loops in the system lane or for batch activities
- use conditional joins only when necessary
- Avoid global error handling
- Use sequential System lane activities efficiently.
- Ensure Process Center is tuned
- preventing wsdl validation from slow web service performance
References:
http://www.evernote.com/l/AKZrhhusWANG75yXr6HJbHEDMoWmyCvplqM/
No comments:
Post a Comment