text:
Marty and I have decided to race Mission Man this Saturday as opposed to the slightly more local Triangle Triathlon. We've done Triangle before and don't necessarily love the course, and we've never done Mission Man, which everyone says is really nice. We are both able to race because we have a babysitter coming over at 5am!
Next weekend I'm trying to decide if I want to do The Battle at Buckhorn, and try to win my first belt buckle, or just stay local (very local, like 1/2 mile away local) and do the Roundabout 5K with Marty and Logan. I've never raced Buckhorn before; one year I was going to but one of Marty's athletes tore her shoulder labrum and couldn't do the swim, so I did that portion for her so she could still compete. Marty has won 3 belt buckles from this race, which are on our mantel. It's quite a unique award! But I would have to go over solo and I'm not sure I want to do that.
The following weekend I'm doing the Lake Logan Olympic distance race - one of my faves. It's on Saturday, and Marty will be doing the sprint or the aquathon on Sunday. Logan gets to go to both...we'll see how that goes!
Logan says hi, bright and early this morning!

lowercased:
marty and i have decided to race mission man this saturday as opposed to the slightly more local triangle triathlon. we've done triangle before and don't necessarily love the course, and we've never done mission man, which everyone says is really nice. we are both able to race because we have a babysitter coming over at 5am!
next weekend i'm trying to decide if i want to do the battle at buckhorn, and try to win my first belt buckle, or just stay local (very local, like 1/2 mile away local) and do the roundabout 5k with marty and logan. i've never raced buckhorn before; one year i was going to but one of marty's athletes tore her shoulder labrum and couldn't do the swim, so i did that portion for her so she could still compete. marty has won 3 belt buckles from this race, which are on our mantel. it's quite a unique award! but i would have to go over solo and i'm not sure i want to do that.
the following weekend i'm doing the lake logan olympic distance race - one of my faves. it's on saturday, and marty will be doing the sprint or the aquathon on sunday. logan gets to go to both...we'll see how that goes!
logan says hi, bright and early this morning!


text:
The schooner Bowdoin, which has a prominent place in early Amateur Radio history, will be relaunched this spring. The vessel relied on Amateur Radio operators for communication during explorer Donald B. MacMillan’s Arctic Expedition of 1923 and on the MacMillan-McDonald-Byrd Expedition of 1925. Now it’s undergoing extensive renovation and refitting in Maine. Named after MacMillan’s alma mater, Bowdoin College, the Bowdoin today is the official vessel of the State of Maine and the flagship of Maine Maritime Academy’s Vessel Operations and Technology Program, which readied the vessel for refitting last year.
Current time: 04-23-2019, 12:13 PM Software provided by MyBB, © 2010 - 2017 My513.net - All rights reserved.

lowercased:
the schooner bowdoin, which has a prominent place in early amateur radio history, will be relaunched this spring. the vessel relied on amateur radio operators for communication during explorer donald b. macmillan’s arctic expedition of 1923 and on the macmillan-mcdonald-byrd expedition of 1925. now it’s undergoing extensive renovation and refitting in maine. named after macmillan’s alma mater, bowdoin college, the bowdoin today is the official vessel of the state of maine and the flagship of maine maritime academy’s vessel operations and technology program, which readied the vessel for refitting last year.
current time: 04-23-2019, 12:13 pm software provided by mybb, © 2010 - 2017 my513.net - all rights reserved.


text:
Professional teeth whitening is preferred over Over-the-Counter (OTC) teeth whitening systems because it is performed under the supervision of a dental professional. This is important because ill-fitting whitening trays can allow the gel to leak out from underneath the tray, which will irritate the gums and can lead to permanent gingival recession.
Professional teeth whitening will also achieve a brighter smile in a shorter amount of time because a higher percentage of the whitening agent can be used. The whitening gel also contains a buffer, which helps protect the enamel of the teeth.
Teeth whitening remains one of the most economical ways to enhance your smile. A brighter smile gives the impression of youth, vitality, happiness, and warmth. It is often perceived as a sign of health and is one of the first things that people notice when they meet.
At The Smile Center Orlando, our professional teeth whitening program consists of a 1-hour in-office treatment followed by supervised at-home treatments for up to 3 weeks. During the initial in-office treatment, the gums are blocked out with a special material to limit irritation and then three whitening sessions are performed to achieve brighter teeth. Each patient is then given custom-made whitening trays to continue using at-home. These trays can be worn for 30 to 60 minutes per day for up to 3 weeks or until the desired color you are looking for is achieved.

lowercased:
professional teeth whitening is preferred over over-the-counter (otc) teeth whitening systems because it is performed under the supervision of a dental professional. this is important because ill-fitting whitening trays can allow the gel to leak out from underneath the tray, which will irritate the gums and can lead to permanent gingival recession.
professional teeth whitening will also achieve a brighter smile in a shorter amount of time because a higher percentage of the whitening agent can be used. the whitening gel also contains a buffer, which helps protect the enamel of the teeth.
teeth whitening remains one of the most economical ways to enhance your smile. a brighter smile gives the impression of youth, vitality, happiness, and warmth. it is often perceived as a sign of health and is one of the first things that people notice when they meet.
at the smile center orlando, our professional teeth whitening program consists of a 1-hour in-office treatment followed by supervised at-home treatments for up to 3 weeks. during the initial in-office treatment, the gums are blocked out with a special material to limit irritation and then three whitening sessions are performed to achieve brighter teeth. each patient is then given custom-made whitening trays to continue using at-home. these trays can be worn for 30 to 60 minutes per day for up to 3 weeks or until the desired color you are looking for is achieved.


text:
IBM® Business Process Manager is a middleware suite that enables managed execution of the processes that keep your business running. It includes a graphical authoring environment that is used for modeling processes and a sophisticated runtime engine that is capable of integrating workflow for the people and automated systems that comprise your organization.
Every day IBM Business Process Manager customers use their IT infrastructure to deliver business value at a fast pace. However, as with any complex system, care must be taken to define performance objectives appropriate to the solution and to ensure that those objectives are met. The IBM Redbooks® publication IBM Business Process Manager V8.5 Performance Tuning and Best Practices, SG24-8216, provides the details necessary to ensure a high performance business process management project. This IBM Redbooks Solution Guide provides an overview of the most critical topics from that book.
This IBM® Redbooks® Solution Guide provides valuable information for IBM Business Process Manager application development architects and technical leaders. It describes a holistic approach to performance issues that range from establishing initial goals and application design through the implementation phase and finally to long-term application maintenance and planning for future capacity. These tasks require a coordinated effort for all of the teams involved in a complex project to ensure that performance objectives can be met. These teams include business owners, infrastructure architects, database administrators, and test leaders. This solution guide serves as a reference to establish these conversations early and to make sure that all critical topics are covered. The typical application development lifecycle for IBM Business Process Manager follows a model described in Figure 1.
The performance architect is ultimately responsible for the performance of the solution from end to end and drives performance objectives throughout the application development lifecycle.
The business analyst is responsible for providing accurate non-functional requirements for the project.
Application development architects are responsible for designing solutions that are capable of meeting the non-functional requirements.
Application developers are responsible for following preferred practices and for avoiding anti-patterns.
The test team lead or manager, together with the performance architect, is responsible for test case design and for translating the non-functional service level agreements (SLAs) that are received from the business analyst into concrete performance objectives.
Testers and script developers are responsible for building and debugging the measurement harness that simulates the user activity as required for driving the tests.
Test team members are responsible for executing the measurements and for collecting the resource consumption data that explains the results.
The infrastructure team, including the system administrator, is responsible for IT monitoring.
The database administrator is responsible for database tuning and monitoring.
Of course, these roles can vary from one organization to another, and, in some cases, the same person or team of people might fulfill multiple roles.
As a business process development and execution platform, IBM Business Process Manager manages business transactions across a wide variety of industries and functional domains. Even within a single organization, some business processes can constitute straightforward orchestration of a set of web service calls, and other processes coordinate the activities of complex teams of knowledge workers. Clearly, the lifecycle of a process instance can vary dramatically from one business process to another. Similarly, the performance characteristics of one process application can be quite different from those of another. The key to a successful production deployment is to match the actual behavior of the application to the requirements of the business.
With every new IBM Business Process Manager release, performance engineers optimize the code to ensure it can support the most strenuous throughput and response time objectives. However, success is measured in the experience of business users when a new application is deployed into production. To achieve success, the Business Process Manager code must work together with the process application, the services it integrates, and the infrastructure on which it runs. This work begins as soon as the new application is conceived and continues through the performance verification cycle.
One set of challenges common to all system-wide concerns, such as performance, is communication and collaboration across the organizational lines within a business. Separation of responsibility among business leaders, application development teams, infrastructure teams, and database management teams is a common practice and does lead to crisp definition of ownership. However, achieving success on system metrics requires a degree of nimbleness in working across these boundaries. Occasionally, we see progress delayed because of formal structures that result in a period of waiting, for example if an application development team needs to request a configuration change within a database server or if a database administrator needs additional physical resources (processor, memory, or storage) allocated to a database server.
The most common costs of poor application performance are easy to imagine. Business users might experience slow response times from their user interface. The slow response time leads to dissatisfaction, which can threaten the overall adoption of new applications. Similarly, miscalculation of the performance metrics of a fully-automated application can lead to resource exhaustion (processor or memory), which might threaten the stability of the entire system. When a process application spans multiple business units, the consequences of a resource failure can be substantial.
Although establishing and verifying non-functional requirements early in the development cycle can add to the cost of application development, failing to do so can be even more expensive. Redesigning an application to meet performance objectives after the fact often requires removal or replacement of substantial amounts of code, exposing the project to wasted effort. Building performance objectives into every phase of application development pays off in the long run through reduced risk of system failure and reduced maintenance cost. Also, applications that are well tuned and well measured are less likely to require over provisioning of hardware, which might reduce software licensing costs.
Now, let us describe IBM Business Process Manager performance measurement and analysis activities by breaking them down among the application development lifecycle from initial requirements gathering through long-term maintenance and capacity planning.
Just as the functional requirements for a business process management solution originate with the business community who will be using the application and are refined and validated through early discussion and playback, so are performance requirements for the application. Make sure to use the opportunity presented through the regular cadence of playback meetings to gather information about the performance expectations that the business community brings to requirements gathering process. Starting early has the advantage that it forces the Performance Architect to think about the objectives in terms of the end to end business experience from the outset. Often times, it is tempting to think of performance objectives one component at a time. However, it is much easier to build a comprehensive performance plan and gather consensus across all of the teams that will contribute to its execution when the objectives can be described based on end to end scenarios that the Business Analyst and, ultimately, Business Sponsor of the project, understands well and can discuss easily.
As a performance architect and engineer, you can help business users articulate their expectations using metrics that are easy to validate within the performance lab. These expectations allow an initial performance plan for the project to be generated at the same time that the functional test plan is generated. Experience shows that some metrics, such as page load response time for a user interface element, are easy for business users to visualize and discuss. Alternatively, some metrics of extremely high value to the performance analyst, such as total system throughput, are more difficult to discuss. Try to conduct these conversations in a context that is natural to the business. Try to avoid talking about the average number of times a particular API invocation occurs per second. Instead, start with the number of mortgage applications (or whatever business process you are modeling) processed per month, the total number of teams that need to contribute to the processing, and the relative sizes of those teams. After these numbers are established, it is easier to guide the conversation to a discussion of the load that they system might expect during a peak hour.
Focus on establishing performance objectives that accurately reflect the needs of the business. Although it is usually easy to understand the risks that are associated with under estimating the performance objectives, over estimating the objectives can be just as detrimental to the overall success of the project. For example, a response time objective of 1 or 2 seconds for a particular user interface element might be perfectly reasonable. Increasing the objective to 500 milliseconds might seem like an innocuous change and allow for some headroom "just in case." However, in many cases, it is unlikely that this decrease in responsiveness would be of value to the application users, and the engineering costs of achieving this tighter tolerance might be high. Sometimes, through poor communication, additional headroom accumulates when establishing an objective (with each team building in its own buffer) to the point that the engineering ultimately does not match the business need.
Over time, you should expect to notice patterns that will simplify the process of gathering requirements. For example, perhaps your organization will standardize on 2 second response times (measured at the 90th percentile) for all simple user interface elements, 5 seconds for complex elements, and custom response times only for exceptional operations. At this point, the response time conversation becomes the simpler activity of identifying the complex and exceptional interactions with the system. Similar patterns might emerge for the throughput metrics. Look for them, and use them to your advantage. Perhaps the business users will not have a good idea of the throughput requirements for a totally new application, but they suspect that it might be similar to rates that they are already observing in another application (perhaps that you collaborated on in the past). Beginning the performance requirements conversations early allows those requirements (and the likelihood that they will be met) to be tracked as application developments and playbacks proceed. If performance requirements will force changes in application design or implementation, surfacing those early in the development cycle benefits everybody.
Ultimately, the performance requirements gathering process will result in a performance plan that describes the metrics of importance, the goals or objectives that the application should achieve for each metric and a description of the simulation infrastructure required to evaluate the application. Simulation for some metrics is straightforward. Single user response time measures can be evaluated using a common user interface (like a web browser) by a person with a stopwatch executing the test manually. More extensive load tests required to evaluate throughput objectives for IBM Business Process Manager applications require a large scale simulation capable of generating http traffic. Tools, such as JMeter, IBM Rational® Performance Tester, and LoadRunner, are usually used to fulfill this role. Also, because most IBM Business Process Manager user interface applications communicate with the server via a series of REST interactions, it is possible to construct a stand-alone Java application that simulates server load. In every case, it is important to execute the performance measurements against server hardware that matches that to be used in production environment as closely as possible. Planning early can ensure that hardware is available when needed.
Because most business process management solutions are complex systems made up of many parts that must work well together to meet functional and non-functional requirements, an architectural approach to performance measurement and analysis is important. Decomposing the system into its components makes analysis easier simply because small things are easier to understand than large ones. End-to-end measurement is critical to ensure that the system works well as a whole when all of the components are working together. In this section, we look at a few architectural techniques that help.
Start small and scale up. The requirements determination phase might have revealed that your application needs to support thousands of concurrent users starting and completing tens of thousands of business process instances per hour. This does not mean that your performance measurements (or stress and load tests) need to begin with this degree of load. You can learn a lot about your application through repeated measurement, tracing, and analysis of single user scenarios. When these are working as expected, measurements with a small concurrent population will help to verify your load simulation infrastructure and also the scaling capabilities of your new application. Data gathered from measurements with small populations and load will help to predict the results you will see under heavier load and help with verification of the actual measurements. Furthermore, small scale measurements are cheaper and easier to implement, allowing them to be executed earlier and more frequently in the development cycle and giving more time to react in the case that the application needs to be adapted.
Similar scale-up techniques apply to other parts of the infrastructure. When the performance plan calls for measurements against a large, complex IBM WebSphere® ND topology, it is a good idea to start with a smaller system, perhaps a single cluster member with a minimum hardware configuration. As analysis progresses, the system can grow to ensure that assumptions regarding vertical scalability (increasing the number of processing cores per cluster member) and horizontal scalability (increasing the number of cluster members) are met.
Pay attention to the interfaces, especially where the business process management application interacts with external services, such as a web services endpoint. Concurrency or throughput limitations in a service provider frequently limit the performance characteristics of the entire solution. Because web service traffic is relatively easy to simulate (compared with human generated traffic), it is natural to decompose an application at the service implementation boundaries to verify their capacity before re-composing the application for end to end measurements. Of course, when re-composing the application, don’t forget to consider the glue that holds it all together--the network connections among the components themselves. A lean user interface that pulls data from a well-tuned backend server might still show poor responsiveness if the network connection between the two has high latency or limited capacity. It is especially important to design the physical topology of the solution to ensure good connection between the process designer and its process center and between a process server and its database server.
Business process modeling plays an important role in the performance characteristics of a business process management application. Throughout the design and implementation phases of application development, options will arise that can have a significant impact on overall system performance. Chapter 3 of the IBM Redbooks publication, IBM Business Process Manager v8.5 Performance Tuning and Best Practices, SG24-8216, describes many common pitfalls and suggests alternatives. This section addresses the topic in a more philosophical manner, looking at some high level design choices and a generalized, data-driven methodology that we find useful during the implementation phase.
IBM Business Process Manager is a flexible business process modeling and execution environment that offers a variety of structures to meet a variety of business needs. At its core, however, all business process management applications manage and persist the state of some business activity. Matching the execution and persistence model to the needs of the business provides an excellent opportunity to optimize for performance. For example, when constructing processes for the BPEL engine, application designers have a choice between short-running processes (microflows), with simple and efficient transactional characteristics, and long-running processes (macroflows), which are capable of coordinating the most complex transactional workloads. Data shows that the simpler state management model used for short-running processes allows execution at much higher throughput. Many processes allow for short-running execution in the common case, but need more complex handling for exceptional cases. So a compound implementation model fits these applications well. All process instances begin with microflow execution and many complete within that microflow. For exception processing, the microflow invokes a macroflow that models the more extensive processing that these instances require.
Similar considerations apply to designing for straight through processing. Computers execute work at a much faster rate than humans. However, business process management usually (and appropriately) begins with an analysis of human workflow. As the process is optimized over time, opportunities arise to automate activities that are carried out by human workers that can be more efficiently handled automatically. This analysis might lead to a shift from a human-centric application that is authored with Business Process Modeling Notation (BPMN) to a more automated application that is authored with Business Process Execution Language (BPEL) or a hybrid of the two that uses an Advanced Integration service to link the two. Because the engine that executes BPMN processes was optimized for handling human centric applications, it is not nearly as fast at executing fully automated workloads as the BPEL engine is. For this reason, it is best to build Straight Through Processing applications using BPEL to get the maximum resource utilization efficiency.
Applying an iterative, data-driven performance measurement and analysis methodology is a great help in maximizing the efficiency of the performance optimization exercise. Many application development engineers have ideas that can improve the overall efficiency of an application. You can channel these enhancement ideas through a scientifically sound evaluation process. Establish a performance simulation environment early, and extend it as the capabilities of the application expand. This method allows early collection of performance baseline data, which is valuable in tracking application performance as new function is added. Measure the effect of one potential performance enhancement at a time in order to build confidence that the enhancement delivers the expected gain. If it does not, it might be abandoned. Sometimes, application development teams retain performance "best practices" that incur some development cost but that actually deliver minimal or no performance gain. Use resource monitoring data (such as CPU, memory, and network consumption statistics as well as tracing and thread dumps) to inform your search for new performance enhancements. It might not be worthwhile to pursue an improvement to an area of the application that consumes only 10% of the total resource consumed by the system. Finally, remember Alexander’s Law: it is faster not to do something than to do it fast. Sometimes, there is just no need to include the expensive activity in the application at all.
Actual execution of performance measurement and analysis takes time, attention, and physical resources. Sometimes, due to lack of planning ahead of time, a dedicated hardware environment is not available for performance measurement and data collection activities. In these cases, performance activities might be executed on a physical environment that is shared with system integration test or on the production environment as it is being prepared for use. Each case presents challenges to successful execution of the Performance Plan.
By its nature, performance measurement and analysis are disruptive activities, making them unsuitable for sharing a system integration test environment with other activities. One goal of performance measurement is to drive the system under test to complete saturation of physical resources in order to measure maximum sustainable load. Similarly, sensitive response time measurements can be polluted by other test activities running on the machines at the same time. For this reason, it is common to see time-sharing policies used for sharing performance measurement hardware among multiple activities. Time sharing is better than simultaneous use but limits the rate at which progress can be made. Performance analysis is an iterative process, requiring painstaking attention to detail and changing only one parameter at a time. Time sharing reduces the total number of iterations that can be completed within a day.
In some cases, it appears better to execute pre-production performance measurement and analysis activities on the actual production hardware as it is being prepared for use. This might seem like a good idea because it is desirable that the performance test environment match the production environment as closely as possible. Using the same physical machines certainly delivers a good match in this regard. However, after the production environment is deployed to the business, it is no longer available for continued performance measurement activities. Continued measurement as new versions of the application are developed is critical for avoiding release to release regression. Continued measurement is also critical for long term capacity planning activities.
For these reasons, plan early for allocation of a dedicated performance measurement and analysis environment for use during initial application development and longer-term use.
As a business process state management system, IBM Business Process Manager applications make heavy use of their database, writing state to ensure it is preserved. Furthermore, IBM Business Process Manager allows a flexible infrastructure for describing business data to be stored with the business process and then retrieving those process instances from storage. From a database perspective, this means that IBM Business Process Manager applications are both read-intensive and write-intensive. Close collaboration between the business process management administrator and the database administrator is recommended, as performance analysis must be approached as an end-to-end activity, considering the entire system.
Traditional database analysis using operating system and database tools to identify memory needs, I/O behavior, slow executing SQL statements and similar issues apply to business process management applications and work well. It is critical to ensure that the database server has sufficient physical memory available and that it is backed by a fast disk subsystem (RAID or SAN are common enterprise solutions). Optimization of database indexes is another important activity for the database administrator (DBA) and the business process management administrator to address. IBM Business Process Manager does create a comprehensive set of indexes at install time. However, because there is performance overhead associated with index maintenance, it only creates indexes that are beneficial to the majority of IBM Business Process Manager applications. Every application will benefit from additional index analysis and this analysis is often critical to get the best performance from a system. Again, an iterative approach works best – use your performance simulation and load test to identify long running SQL statements, use the database query plan advisor to identify indexes that might be beneficial and conduct measurements with and without these new indexes to evaluate their effectiveness, only accepting those that deliver the expected benefit.
In addition to the ongoing performance analysis and optimization that occurs during the application development cycle, most enterprises require formal performance verification, including a successful load test as one of the requirements before releasing the application to production. Executing this part of the plan requires simulating full production load (or perhaps greater than full production load) against a fully functional system that is running the application. However, this type of simulation does not mean that the first measurements must be executed at full load, even at the final verification stage. Returning to a small load and monitoring resource consumption as the load increases continues to be good practice and aids in discovery of performance tuning requirements or potential bottlenecks. Final verification should be executed on hardware that matches the production servers as closely as possible. This final verification applies to the servers that host external services and to the servers that host IBM Business Process Manager. In some cases, the final performance verification can call out to the actual production servers hosting web services endpoints, but this is often possible. In either case, the concurrency and throughput characteristics of the endpoints should match those of the production servers.
In addition to validation of the performance characteristics of the business process application, it is worth spending a moment to think about validation of the performance objectives themselves. One common issue observed in performance plans associated with IBM Business Process Manager applications is that the objectives are actually too high. How does this come about? Typically, performance engineers look at the user interface elements that make up a solution and design think times based on a reasonable person completing the form. Perhaps this form can be completed in 30 seconds. So the performance engineer builds a simulation with a think time of 30 seconds per human task completion. Next, the total user population is analyzed, and it is determined that the system needs to support a few thousands of concurrent users. Putting these two pieces together creates a performance plan that requires the system to support the completion of thousands of tasks and many hundreds of business process instances per minute. It is a good idea to validate the throughput implied by the performance objectives against actual business requirements in addition to the number of concurrent users. In some cases, performance verification exercises actually simulate several months’ worth of business activity in a period of a few hours. When this is intended, it is a fantastic result; when unintentional, it can lead to some confusion.
Good performance practice does not end when the application is released to production. The same resource monitoring tools and skills built up for performance evaluation during application development are extremely useful long term and should be a part of the IT monitoring practice for any enterprise application. Observation of patterns in CPU or memory utilization on IBM Business Process Manager and database servers can help identify approaching capacity issues before they become apparent to the business. In particular, collecting verbose garbage collection statistics (-verbose:gc on the Java command line) and using a graphical visualization tool (such as PMAT: https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=22d56091-3a7b-4497-b36e-634b51838e11) to inspect them is an inexpensive way to monitor the pulse of the application. Many IT departments depend on automated systems of monitoring key resources and sending alerts when thresholds are exceeded.
Long-term performance health of a business process management solution requires a maintenance plan. The databases that contain operational data for IBM Business Process Manager are optimized for rapid execution of business process activities, not for long term retention and access of that data. So, it is recommended that a retention period be established for the data associated with business process instances that have completed. The actual amount of time that these completed instances need to be retained will vary from one business to another, but after that period expires, those instances should be removed from the server using the appropriate tools. Business monitoring tools, such as the Performance Data Warehouse and IBM Business Monitor, are optimized for processing this data for long-term storage and retrieval.
After an application has been available in production for a while, a time will come when capacity planning is needed. Perhaps an application is popular and business users interact with it more frequently or the application is rolled out to a larger community. The experience gained from performance verification exercises and IT monitoring of the application in the production environment is the best input to planning future capacity. Resource consumption models usually follow predictable patterns, so it is often possible to project tomorrow’s needs based on a thorough understanding of today’s behavior. Also, many enterprises use their load test to ensure enough head room is available to provide a buffer against capital expenditures. Load testing at 150% of projected peak load gives some confidence that the system will be able to handle a growing business and might provide lead time in case additional capacity is required.
A wholesale company provides an online parts sales operation where it handles direct orders that are placed by their business partners. Consider a business process application, MyAuditApp, whose goal is to review order data submitted by a business partner for correctness. After the review is complete, the order is sent to another application (perhaps an existing system, not implemented in IBM Business Process Manager) for processing. In this case, the audit process contains two stages. The first stage in the audit is relatively simple, is fully automated, and is required for all orders. The second stage is more complex and requires human oversight, but it is needed only if the first stage of the audit reveals a potential issue.
Performance objectives for the two stages of the application are distinct but are linked. This company knows that it needs to be able to process 30,000 orders per day, distributed throughout a 12-hour period, but with peaks of 4,000 orders in any given hour. These requirements establish a throughput objective for the overall application of about 1.1 process instances per second. To allow some head room, a formal performance objective of 1.5 process instances per second is established for the stage of the application that handles the automated processing.
Because the business knows that 90% of all orders are handled successfully by the automated stage of processing, a formal objective of 0.15 process instances per second is established for the manual stage of the application. In addition, the corporate standard of a 2-second response time for all UI elements (measured at the 90th percentile) is accepted for all stages of the processing, except for initial login and final submission of the audit completion form. These operations are expected to complete in 5 seconds (again, measured at the 90th percentile).
Even though MyAuditApp is a single business process application implemented in IBM Business Process Manager, it clearly has two separate facets. So the performance analysis engineer decides to model the performance simulation as though it were two separate applications. The first half of the simulation is easy to construct. Because all the interactions are automated, perhaps with communication occurring via Java Message Service (JMS) and WebService interactions, software components can be written to drive the application using exactly the same interfaces that will be used in production. Furthermore, because this phase of processing is the most straightforward, the application development team decides to implement it first while requirements determination and initial playbacks of the human interface elements of the application take place. In this way, early performance analysis of the first stage of the application begins before the entire application is fully developed.
Performance simulation for the manual stage of MyAuditApp proceeds differently, because it must account for human interactions, which occur through a web browser and communicate with the IBM Business Process Manager server via REST interactions. Response time evaluation will be executed using the same corporate standard web browser that the business users will use. Evaluation of actual response times when interacting with the application will begin early in application development and will continue as new functionality is added. Any new function that regresses response times beyond acceptable limits will be re-engineered during the next development iteration to ensure that this type of work does not accumulate.
In parallel, work begins to construct the load test simulation that will be used to evaluate throughput metrics for the human-centric stage of the application. An HTTP simulator tool (such as JMeter, LoadRunner, or Rational Performance Tester) is used to record the browser interactions that are required to start and complete a process instance. Then, the tool can simulate many users interacting with the system in the same way. Data pools are used to allow each simulated user to log in to the IBM Business Process Manager server under distinct credentials. The HTTP simulation tool also allows retention of user tokens so that correlation of HTTP session data can be handled by the IBM Business Process Manager server, just as though the load were supplied by a collection of distinct web browsers. After the application has been certified functionally complete, and concurrent with system integration test of the application, load tests begin. The IBM Business Process Manager server is "pre-loaded" with a number of process instances available to work on and the database is backed up so that future measurements can begin from a controlled state. Measurements begin with a single user, ensuring that response times observed within the simulator are consistent with actual browser interactions and that resource consumption on the IBM Business Process Manager server, Database server, LDAP server and all external service provider machines appear reasonable. After this, load is gradually increased until the system successfully processes 0.15 business process instances per second, while maintaining 90th percentile response times faster than 2 seconds. Any issues observed as load increases are resolved before increasing load. In this case, the sizes of thread pools and database connection pools need to be increased from the default in order to allow the desired concurrency. Also, two new database indexes are identified based on the data access patterns of the application.
Performance measurement and analysis continues in this way, systematically increasing the capability of the system under test and of the applied load, until the performance architect is satisfied that the application and the infrastructure upon which it will be executed are capable of achieving the goals.
Generation and execution of a successful performance plan requires integration across many different types of boundaries, both physical and social. Business Process Integration itself is also a key objective for many IBM Business Process Manager solutions, automating and orchestrating activities across a wide array of software systems connected via REST, JDBC, LDAP, and web service protocols. The software solution’s end-to-end performance will be limited by the slowest element within the execution chain. Similarly, effective communication across all of the teams that contribute to the application-–from the business community through the application development team to the infrastructure and administration teams-–can play a significant role in the success of the project.
Blog post, "5 Things to Know About Systematically Deploying IBM Business Process Manager"
On this page, enter Business Process Manager, select the information type, and then click Search. On the next page, you can narrow your search results by geography and language.

lowercased:
ibm® business process manager is a middleware suite that enables managed execution of the processes that keep your business running. it includes a graphical authoring environment that is used for modeling processes and a sophisticated runtime engine that is capable of integrating workflow for the people and automated systems that comprise your organization.
every day ibm business process manager customers use their it infrastructure to deliver business value at a fast pace. however, as with any complex system, care must be taken to define performance objectives appropriate to the solution and to ensure that those objectives are met. the ibm redbooks® publication ibm business process manager v8.5 performance tuning and best practices, sg24-8216, provides the details necessary to ensure a high performance business process management project. this ibm redbooks solution guide provides an overview of the most critical topics from that book.
this ibm® redbooks® solution guide provides valuable information for ibm business process manager application development architects and technical leaders. it describes a holistic approach to performance issues that range from establishing initial goals and application design through the implementation phase and finally to long-term application maintenance and planning for future capacity. these tasks require a coordinated effort for all of the teams involved in a complex project to ensure that performance objectives can be met. these teams include business owners, infrastructure architects, database administrators, and test leaders. this solution guide serves as a reference to establish these conversations early and to make sure that all critical topics are covered. the typical application development lifecycle for ibm business process manager follows a model described in figure 1.
the performance architect is ultimately responsible for the performance of the solution from end to end and drives performance objectives throughout the application development lifecycle.
the business analyst is responsible for providing accurate non-functional requirements for the project.
application development architects are responsible for designing solutions that are capable of meeting the non-functional requirements.
application developers are responsible for following preferred practices and for avoiding anti-patterns.
the test team lead or manager, together with the performance architect, is responsible for test case design and for translating the non-functional service level agreements (slas) that are received from the business analyst into concrete performance objectives.
testers and script developers are responsible for building and debugging the measurement harness that simulates the user activity as required for driving the tests.
test team members are responsible for executing the measurements and for collecting the resource consumption data that explains the results.
the infrastructure team, including the system administrator, is responsible for it monitoring.
the database administrator is responsible for database tuning and monitoring.
of course, these roles can vary from one organization to another, and, in some cases, the same person or team of people might fulfill multiple roles.
as a business process development and execution platform, ibm business process manager manages business transactions across a wide variety of industries and functional domains. even within a single organization, some business processes can constitute straightforward orchestration of a set of web service calls, and other processes coordinate the activities of complex teams of knowledge workers. clearly, the lifecycle of a process instance can vary dramatically from one business process to another. similarly, the performance characteristics of one process application can be quite different from those of another. the key to a successful production deployment is to match the actual behavior of the application to the requirements of the business.
with every new ibm business process manager release, performance engineers optimize the code to ensure it can support the most strenuous throughput and response time objectives. however, success is measured in the experience of business users when a new application is deployed into production. to achieve success, the business process manager code must work together with the process application, the services it integrates, and the infrastructure on which it runs. this work begins as soon as the new application is conceived and continues through the performance verification cycle.
one set of challenges common to all system-wide concerns, such as performance, is communication and collaboration across the organizational lines within a business. separation of responsibility among business leaders, application development teams, infrastructure teams, and database management teams is a common practice and does lead to crisp definition of ownership. however, achieving success on system metrics requires a degree of nimbleness in working across these boundaries. occasionally, we see progress delayed because of formal structures that result in a period of waiting, for example if an application development team needs to request a configuration change within a database server or if a database administrator needs additional physical resources (processor, memory, or storage) allocated to a database server.
the most common costs of poor application performance are easy to imagine. business users might experience slow response times from their user interface. the slow response time leads to dissatisfaction, which can threaten the overall adoption of new applications. similarly, miscalculation of the performance metrics of a fully-automated application can lead to resource exhaustion (processor or memory), which might threaten the stability of the entire system. when a process application spans multiple business units, the consequences of a resource failure can be substantial.
although establishing and verifying non-functional requirements early in the development cycle can add to the cost of application development, failing to do so can be even more expensive. redesigning an application to meet performance objectives after the fact often requires removal or replacement of substantial amounts of code, exposing the project to wasted effort. building performance objectives into every phase of application development pays off in the long run through reduced risk of system failure and reduced maintenance cost. also, applications that are well tuned and well measured are less likely to require over provisioning of hardware, which might reduce software licensing costs.
now, let us describe ibm business process manager performance measurement and analysis activities by breaking them down among the application development lifecycle from initial requirements gathering through long-term maintenance and capacity planning.
just as the functional requirements for a business process management solution originate with the business community who will be using the application and are refined and validated through early discussion and playback, so are performance requirements for the application. make sure to use the opportunity presented through the regular cadence of playback meetings to gather information about the performance expectations that the business community brings to requirements gathering process. starting early has the advantage that it forces the performance architect to think about the objectives in terms of the end to end business experience from the outset. often times, it is tempting to think of performance objectives one component at a time. however, it is much easier to build a comprehensive performance plan and gather consensus across all of the teams that will contribute to its execution when the objectives can be described based on end to end scenarios that the business analyst and, ultimately, business sponsor of the project, understands well and can discuss easily.
as a performance architect and engineer, you can help business users articulate their expectations using metrics that are easy to validate within the performance lab. these expectations allow an initial performance plan for the project to be generated at the same time that the functional test plan is generated. experience shows that some metrics, such as page load response time for a user interface element, are easy for business users to visualize and discuss. alternatively, some metrics of extremely high value to the performance analyst, such as total system throughput, are more difficult to discuss. try to conduct these conversations in a context that is natural to the business. try to avoid talking about the average number of times a particular api invocation occurs per second. instead, start with the number of mortgage applications (or whatever business process you are modeling) processed per month, the total number of teams that need to contribute to the processing, and the relative sizes of those teams. after these numbers are established, it is easier to guide the conversation to a discussion of the load that they system might expect during a peak hour.
focus on establishing performance objectives that accurately reflect the needs of the business. although it is usually easy to understand the risks that are associated with under estimating the performance objectives, over estimating the objectives can be just as detrimental to the overall success of the project. for example, a response time objective of 1 or 2 seconds for a particular user interface element might be perfectly reasonable. increasing the objective to 500 milliseconds might seem like an innocuous change and allow for some headroom "just in case." however, in many cases, it is unlikely that this decrease in responsiveness would be of value to the application users, and the engineering costs of achieving this tighter tolerance might be high. sometimes, through poor communication, additional headroom accumulates when establishing an objective (with each team building in its own buffer) to the point that the engineering ultimately does not match the business need.
over time, you should expect to notice patterns that will simplify the process of gathering requirements. for example, perhaps your organization will standardize on 2 second response times (measured at the 90th percentile) for all simple user interface elements, 5 seconds for complex elements, and custom response times only for exceptional operations. at this point, the response time conversation becomes the simpler activity of identifying the complex and exceptional interactions with the system. similar patterns might emerge for the throughput metrics. look for them, and use them to your advantage. perhaps the business users will not have a good idea of the throughput requirements for a totally new application, but they suspect that it might be similar to rates that they are already observing in another application (perhaps that you collaborated on in the past). beginning the performance requirements conversations early allows those requirements (and the likelihood that they will be met) to be tracked as application developments and playbacks proceed. if performance requirements will force changes in application design or implementation, surfacing those early in the development cycle benefits everybody.
ultimately, the performance requirements gathering process will result in a performance plan that describes the metrics of importance, the goals or objectives that the application should achieve for each metric and a description of the simulation infrastructure required to evaluate the application. simulation for some metrics is straightforward. single user response time measures can be evaluated using a common user interface (like a web browser) by a person with a stopwatch executing the test manually. more extensive load tests required to evaluate throughput objectives for ibm business process manager applications require a large scale simulation capable of generating http traffic. tools, such as jmeter, ibm rational® performance tester, and loadrunner, are usually used to fulfill this role. also, because most ibm business process manager user interface applications communicate with the server via a series of rest interactions, it is possible to construct a stand-alone java application that simulates server load. in every case, it is important to execute the performance measurements against server hardware that matches that to be used in production environment as closely as possible. planning early can ensure that hardware is available when needed.
because most business process management solutions are complex systems made up of many parts that must work well together to meet functional and non-functional requirements, an architectural approach to performance measurement and analysis is important. decomposing the system into its components makes analysis easier simply because small things are easier to understand than large ones. end-to-end measurement is critical to ensure that the system works well as a whole when all of the components are working together. in this section, we look at a few architectural techniques that help.
start small and scale up. the requirements determination phase might have revealed that your application needs to support thousands of concurrent users starting and completing tens of thousands of business process instances per hour. this does not mean that your performance measurements (or stress and load tests) need to begin with this degree of load. you can learn a lot about your application through repeated measurement, tracing, and analysis of single user scenarios. when these are working as expected, measurements with a small concurrent population will help to verify your load simulation infrastructure and also the scaling capabilities of your new application. data gathered from measurements with small populations and load will help to predict the results you will see under heavier load and help with verification of the actual measurements. furthermore, small scale measurements are cheaper and easier to implement, allowing them to be executed earlier and more frequently in the development cycle and giving more time to react in the case that the application needs to be adapted.
similar scale-up techniques apply to other parts of the infrastructure. when the performance plan calls for measurements against a large, complex ibm websphere® nd topology, it is a good idea to start with a smaller system, perhaps a single cluster member with a minimum hardware configuration. as analysis progresses, the system can grow to ensure that assumptions regarding vertical scalability (increasing the number of processing cores per cluster member) and horizontal scalability (increasing the number of cluster members) are met.
pay attention to the interfaces, especially where the business process management application interacts with external services, such as a web services endpoint. concurrency or throughput limitations in a service provider frequently limit the performance characteristics of the entire solution. because web service traffic is relatively easy to simulate (compared with human generated traffic), it is natural to decompose an application at the service implementation boundaries to verify their capacity before re-composing the application for end to end measurements. of course, when re-composing the application, don’t forget to consider the glue that holds it all together--the network connections among the components themselves. a lean user interface that pulls data from a well-tuned backend server might still show poor responsiveness if the network connection between the two has high latency or limited capacity. it is especially important to design the physical topology of the solution to ensure good connection between the process designer and its process center and between a process server and its database server.
business process modeling plays an important role in the performance characteristics of a business process management application. throughout the design and implementation phases of application development, options will arise that can have a significant impact on overall system performance. chapter 3 of the ibm redbooks publication, ibm business process manager v8.5 performance tuning and best practices, sg24-8216, describes many common pitfalls and suggests alternatives. this section addresses the topic in a more philosophical manner, looking at some high level design choices and a generalized, data-driven methodology that we find useful during the implementation phase.
ibm business process manager is a flexible business process modeling and execution environment that offers a variety of structures to meet a variety of business needs. at its core, however, all business process management applications manage and persist the state of some business activity. matching the execution and persistence model to the needs of the business provides an excellent opportunity to optimize for performance. for example, when constructing processes for the bpel engine, application designers have a choice between short-running processes (microflows), with simple and efficient transactional characteristics, and long-running processes (macroflows), which are capable of coordinating the most complex transactional workloads. data shows that the simpler state management model used for short-running processes allows execution at much higher throughput. many processes allow for short-running execution in the common case, but need more complex handling for exceptional cases. so a compound implementation model fits these applications well. all process instances begin with microflow execution and many complete within that microflow. for exception processing, the microflow invokes a macroflow that models the more extensive processing that these instances require.
similar considerations apply to designing for straight through processing. computers execute work at a much faster rate than humans. however, business process management usually (and appropriately) begins with an analysis of human workflow. as the process is optimized over time, opportunities arise to automate activities that are carried out by human workers that can be more efficiently handled automatically. this analysis might lead to a shift from a human-centric application that is authored with business process modeling notation (bpmn) to a more automated application that is authored with business process execution language (bpel) or a hybrid of the two that uses an advanced integration service to link the two. because the engine that executes bpmn processes was optimized for handling human centric applications, it is not nearly as fast at executing fully automated workloads as the bpel engine is. for this reason, it is best to build straight through processing applications using bpel to get the maximum resource utilization efficiency.
applying an iterative, data-driven performance measurement and analysis methodology is a great help in maximizing the efficiency of the performance optimization exercise. many application development engineers have ideas that can improve the overall efficiency of an application. you can channel these enhancement ideas through a scientifically sound evaluation process. establish a performance simulation environment early, and extend it as the capabilities of the application expand. this method allows early collection of performance baseline data, which is valuable in tracking application performance as new function is added. measure the effect of one potential performance enhancement at a time in order to build confidence that the enhancement delivers the expected gain. if it does not, it might be abandoned. sometimes, application development teams retain performance "best practices" that incur some development cost but that actually deliver minimal or no performance gain. use resource monitoring data (such as cpu, memory, and network consumption statistics as well as tracing and thread dumps) to inform your search for new performance enhancements. it might not be worthwhile to pursue an improvement to an area of the application that consumes only 10% of the total resource consumed by the system. finally, remember alexander’s law: it is faster not to do something than to do it fast. sometimes, there is just no need to include the expensive activity in the application at all.
actual execution of performance measurement and analysis takes time, attention, and physical resources. sometimes, due to lack of planning ahead of time, a dedicated hardware environment is not available for performance measurement and data collection activities. in these cases, performance activities might be executed on a physical environment that is shared with system integration test or on the production environment as it is being prepared for use. each case presents challenges to successful execution of the performance plan.
by its nature, performance measurement and analysis are disruptive activities, making them unsuitable for sharing a system integration test environment with other activities. one goal of performance measurement is to drive the system under test to complete saturation of physical resources in order to measure maximum sustainable load. similarly, sensitive response time measurements can be polluted by other test activities running on the machines at the same time. for this reason, it is common to see time-sharing policies used for sharing performance measurement hardware among multiple activities. time sharing is better than simultaneous use but limits the rate at which progress can be made. performance analysis is an iterative process, requiring painstaking attention to detail and changing only one parameter at a time. time sharing reduces the total number of iterations that can be completed within a day.
in some cases, it appears better to execute pre-production performance measurement and analysis activities on the actual production hardware as it is being prepared for use. this might seem like a good idea because it is desirable that the performance test environment match the production environment as closely as possible. using the same physical machines certainly delivers a good match in this regard. however, after the production environment is deployed to the business, it is no longer available for continued performance measurement activities. continued measurement as new versions of the application are developed is critical for avoiding release to release regression. continued measurement is also critical for long term capacity planning activities.
for these reasons, plan early for allocation of a dedicated performance measurement and analysis environment for use during initial application development and longer-term use.
as a business process state management system, ibm business process manager applications make heavy use of their database, writing state to ensure it is preserved. furthermore, ibm business process manager allows a flexible infrastructure for describing business data to be stored with the business process and then retrieving those process instances from storage. from a database perspective, this means that ibm business process manager applications are both read-intensive and write-intensive. close collaboration between the business process management administrator and the database administrator is recommended, as performance analysis must be approached as an end-to-end activity, considering the entire system.
traditional database analysis using operating system and database tools to identify memory needs, i/o behavior, slow executing sql statements and similar issues apply to business process management applications and work well. it is critical to ensure that the database server has sufficient physical memory available and that it is backed by a fast disk subsystem (raid or san are common enterprise solutions). optimization of database indexes is another important activity for the database administrator (dba) and the business process management administrator to address. ibm business process manager does create a comprehensive set of indexes at install time. however, because there is performance overhead associated with index maintenance, it only creates indexes that are beneficial to the majority of ibm business process manager applications. every application will benefit from additional index analysis and this analysis is often critical to get the best performance from a system. again, an iterative approach works best – use your performance simulation and load test to identify long running sql statements, use the database query plan advisor to identify indexes that might be beneficial and conduct measurements with and without these new indexes to evaluate their effectiveness, only accepting those that deliver the expected benefit.
in addition to the ongoing performance analysis and optimization that occurs during the application development cycle, most enterprises require formal performance verification, including a successful load test as one of the requirements before releasing the application to production. executing this part of the plan requires simulating full production load (or perhaps greater than full production load) against a fully functional system that is running the application. however, this type of simulation does not mean that the first measurements must be executed at full load, even at the final verification stage. returning to a small load and monitoring resource consumption as the load increases continues to be good practice and aids in discovery of performance tuning requirements or potential bottlenecks. final verification should be executed on hardware that matches the production servers as closely as possible. this final verification applies to the servers that host external services and to the servers that host ibm business process manager. in some cases, the final performance verification can call out to the actual production servers hosting web services endpoints, but this is often possible. in either case, the concurrency and throughput characteristics of the endpoints should match those of the production servers.
in addition to validation of the performance characteristics of the business process application, it is worth spending a moment to think about validation of the performance objectives themselves. one common issue observed in performance plans associated with ibm business process manager applications is that the objectives are actually too high. how does this come about? typically, performance engineers look at the user interface elements that make up a solution and design think times based on a reasonable person completing the form. perhaps this form can be completed in 30 seconds. so the performance engineer builds a simulation with a think time of 30 seconds per human task completion. next, the total user population is analyzed, and it is determined that the system needs to support a few thousands of concurrent users. putting these two pieces together creates a performance plan that requires the system to support the completion of thousands of tasks and many hundreds of business process instances per minute. it is a good idea to validate the throughput implied by the performance objectives against actual business requirements in addition to the number of concurrent users. in some cases, performance verification exercises actually simulate several months’ worth of business activity in a period of a few hours. when this is intended, it is a fantastic result; when unintentional, it can lead to some confusion.
good performance practice does not end when the application is released to production. the same resource monitoring tools and skills built up for performance evaluation during application development are extremely useful long term and should be a part of the it monitoring practice for any enterprise application. observation of patterns in cpu or memory utilization on ibm business process manager and database servers can help identify approaching capacity issues before they become apparent to the business. in particular, collecting verbose garbage collection statistics (-verbose:gc on the java command line) and using a graphical visualization tool (such as pmat: https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityuuid=22d56091-3a7b-4497-b36e-634b51838e11) to inspect them is an inexpensive way to monitor the pulse of the application. many it departments depend on automated systems of monitoring key resources and sending alerts when thresholds are exceeded.
long-term performance health of a business process management solution requires a maintenance plan. the databases that contain operational data for ibm business process manager are optimized for rapid execution of business process activities, not for long term retention and access of that data. so, it is recommended that a retention period be established for the data associated with business process instances that have completed. the actual amount of time that these completed instances need to be retained will vary from one business to another, but after that period expires, those instances should be removed from the server using the appropriate tools. business monitoring tools, such as the performance data warehouse and ibm business monitor, are optimized for processing this data for long-term storage and retrieval.
after an application has been available in production for a while, a time will come when capacity planning is needed. perhaps an application is popular and business users interact with it more frequently or the application is rolled out to a larger community. the experience gained from performance verification exercises and it monitoring of the application in the production environment is the best input to planning future capacity. resource consumption models usually follow predictable patterns, so it is often possible to project tomorrow’s needs based on a thorough understanding of today’s behavior. also, many enterprises use their load test to ensure enough head room is available to provide a buffer against capital expenditures. load testing at 150% of projected peak load gives some confidence that the system will be able to handle a growing business and might provide lead time in case additional capacity is required.
a wholesale company provides an online parts sales operation where it handles direct orders that are placed by their business partners. consider a business process application, myauditapp, whose goal is to review order data submitted by a business partner for correctness. after the review is complete, the order is sent to another application (perhaps an existing system, not implemented in ibm business process manager) for processing. in this case, the audit process contains two stages. the first stage in the audit is relatively simple, is fully automated, and is required for all orders. the second stage is more complex and requires human oversight, but it is needed only if the first stage of the audit reveals a potential issue.
performance objectives for the two stages of the application are distinct but are linked. this company knows that it needs to be able to process 30,000 orders per day, distributed throughout a 12-hour period, but with peaks of 4,000 orders in any given hour. these requirements establish a throughput objective for the overall application of about 1.1 process instances per second. to allow some head room, a formal performance objective of 1.5 process instances per second is established for the stage of the application that handles the automated processing.
because the business knows that 90% of all orders are handled successfully by the automated stage of processing, a formal objective of 0.15 process instances per second is established for the manual stage of the application. in addition, the corporate standard of a 2-second response time for all ui elements (measured at the 90th percentile) is accepted for all stages of the processing, except for initial login and final submission of the audit completion form. these operations are expected to complete in 5 seconds (again, measured at the 90th percentile).
even though myauditapp is a single business process application implemented in ibm business process manager, it clearly has two separate facets. so the performance analysis engineer decides to model the performance simulation as though it were two separate applications. the first half of the simulation is easy to construct. because all the interactions are automated, perhaps with communication occurring via java message service (jms) and webservice interactions, software components can be written to drive the application using exactly the same interfaces that will be used in production. furthermore, because this phase of processing is the most straightforward, the application development team decides to implement it first while requirements determination and initial playbacks of the human interface elements of the application take place. in this way, early performance analysis of the first stage of the application begins before the entire application is fully developed.
performance simulation for the manual stage of myauditapp proceeds differently, because it must account for human interactions, which occur through a web browser and communicate with the ibm business process manager server via rest interactions. response time evaluation will be executed using the same corporate standard web browser that the business users will use. evaluation of actual response times when interacting with the application will begin early in application development and will continue as new functionality is added. any new function that regresses response times beyond acceptable limits will be re-engineered during the next development iteration to ensure that this type of work does not accumulate.
in parallel, work begins to construct the load test simulation that will be used to evaluate throughput metrics for the human-centric stage of the application. an http simulator tool (such as jmeter, loadrunner, or rational performance tester) is used to record the browser interactions that are required to start and complete a process instance. then, the tool can simulate many users interacting with the system in the same way. data pools are used to allow each simulated user to log in to the ibm business process manager server under distinct credentials. the http simulation tool also allows retention of user tokens so that correlation of http session data can be handled by the ibm business process manager server, just as though the load were supplied by a collection of distinct web browsers. after the application has been certified functionally complete, and concurrent with system integration test of the application, load tests begin. the ibm business process manager server is "pre-loaded" with a number of process instances available to work on and the database is backed up so that future measurements can begin from a controlled state. measurements begin with a single user, ensuring that response times observed within the simulator are consistent with actual browser interactions and that resource consumption on the ibm business process manager server, database server, ldap server and all external service provider machines appear reasonable. after this, load is gradually increased until the system successfully processes 0.15 business process instances per second, while maintaining 90th percentile response times faster than 2 seconds. any issues observed as load increases are resolved before increasing load. in this case, the sizes of thread pools and database connection pools need to be increased from the default in order to allow the desired concurrency. also, two new database indexes are identified based on the data access patterns of the application.
performance measurement and analysis continues in this way, systematically increasing the capability of the system under test and of the applied load, until the performance architect is satisfied that the application and the infrastructure upon which it will be executed are capable of achieving the goals.
generation and execution of a successful performance plan requires integration across many different types of boundaries, both physical and social. business process integration itself is also a key objective for many ibm business process manager solutions, automating and orchestrating activities across a wide array of software systems connected via rest, jdbc, ldap, and web service protocols. the software solution’s end-to-end performance will be limited by the slowest element within the execution chain. similarly, effective communication across all of the teams that contribute to the application-–from the business community through the application development team to the infrastructure and administration teams-–can play a significant role in the success of the project.
blog post, "5 things to know about systematically deploying ibm business process manager"
on this page, enter business process manager, select the information type, and then click search. on the next page, you can narrow your search results by geography and language.


text:
MacIver, Robert Morrison from The Columbia Encyclopedia, 6th ed.
Robert Morrison MacIver (məkē´vər, –kī´vər), 1882–1970, Scottish-American sociologist, b. Scotland, grad. Univ. of Edinburgh and Oxford. He began teaching at Columbia Univ. in 1927. His books, in which he discusses the complexities of social and political organization, include Community: A Sociological Study (1917), Society: Its Structure and Changes (1931), The Web of Government (1947), The Pursuit of Happiness (1955), Life: Its Dimensions and Its Bounds (1960), The Challenge of the Passing Years (1962), Social Causation (1964), The Prevention and Control of Delinquency (1966), Politics & Society (1969), and On Community, Society, and Power; Selected Writings, ed. by L. Bramson (1970).
Publication information: Article title: MacIver, Robert Morrison. Encyclopedia title: The Columbia Encyclopedia, 6th ed.. © The Columbia University Press. Used with the permission of Columbia University Press. All Rights Reserved. Publisher: The Columbia University Press. Place of publication: Not available. Publication year: 2018.

lowercased:
maciver, robert morrison from the columbia encyclopedia, 6th ed.
robert morrison maciver (məkē´vər, –kī´vər), 1882–1970, scottish-american sociologist, b. scotland, grad. univ. of edinburgh and oxford. he began teaching at columbia univ. in 1927. his books, in which he discusses the complexities of social and political organization, include community: a sociological study (1917), society: its structure and changes (1931), the web of government (1947), the pursuit of happiness (1955), life: its dimensions and its bounds (1960), the challenge of the passing years (1962), social causation (1964), the prevention and control of delinquency (1966), politics & society (1969), and on community, society, and power; selected writings, ed. by l. bramson (1970).
publication information: article title: maciver, robert morrison. encyclopedia title: the columbia encyclopedia, 6th ed.. © the columbia university press. used with the permission of columbia university press. all rights reserved. publisher: the columbia university press. place of publication: not available. publication year: 2018.